diff options
author | Tao Ma <tao.ma@oracle.com> | 2010-02-26 10:54:52 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-15 09:06:49 -0700 |
commit | 830ae40a16b41f081b0c9e317fd03889ea136327 (patch) | |
tree | d6b8434ba10d5ecc4d9b8529ab0c5e81c1cd073a /fs/ocfs2 | |
parent | c9438d3d949d4c5f88f630b647011b8381c63ae5 (diff) | |
download | lwn-830ae40a16b41f081b0c9e317fd03889ea136327.tar.gz lwn-830ae40a16b41f081b0c9e317fd03889ea136327.zip |
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 <tao.ma@oracle.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'fs/ocfs2')
-rw-r--r-- | fs/ocfs2/aops.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index 7e9df11260f4..4c2a6d282c4d 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c @@ -577,8 +577,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(). |