From: Tao Ma Date: Fri, 26 Feb 2010 02:54:52 +0000 (+0800) Subject: ocfs2: Only bug out in direct io write for reflinked extent. X-Git-Tag: firefly_0821_release~10186^2~2067 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e3e48b52f53c8d5f93349364a24c6f1eb67950b8;p=firefly-linux-kernel-4.4.55.git ocfs2: Only bug out in direct io write for reflinked extent. commit cbaee472f274ea9a98aabe47025f6e5551acadcb upstream. In ocfs2_direct_IO_get_blocks, we only need to bug out in case of we are going to write a recounted extent rec. What a silly bug introduced by me! Signed-off-by: Tao Ma Signed-off-by: Joel Becker Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index deb2b132ae5e..5fc918ca2572 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c @@ -591,8 +591,9 @@ static int ocfs2_direct_IO_get_blocks(struct inode *inode, sector_t iblock, goto bail; } - /* We should already CoW the refcounted extent. */ - BUG_ON(ext_flags & OCFS2_EXT_REFCOUNTED); + /* We should already CoW the refcounted extent in case of create. */ + BUG_ON(create && (ext_flags & OCFS2_EXT_REFCOUNTED)); + /* * get_more_blocks() expects us to describe a hole by clearing * the mapped bit on bh_result().