All of lore.kernel.org
 help / color / mirror / Atom feed
* [Ocfs2-devel] [PATCH] ocfs2: fix a refcount condition checking
@ 2010-02-04 21:20 Wengang Wang
  2010-02-05  0:58 ` Tao Ma
  2010-02-09  1:06 ` Joel Becker
  0 siblings, 2 replies; 7+ messages in thread
From: Wengang Wang @ 2010-02-04 21:20 UTC (permalink / raw)
  To: ocfs2-devel

Hi Joel/Tao,

I don't know the reflink very well, so please ignore this patch if I am wrong.

I think in ocfs2_prepare_inode_for_write(), we disable DIO write if the inode
has reflink.
If am right, the way we determine if the inode has reflink is wrong in case
(!has_refcount && direct_io).

Signed-off-by: Wengang Wang <wen.gang.wang@oracle.com>
---
 fs/ocfs2/file.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 06ccf6a..77ebb6e 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -1775,7 +1775,7 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry,
 					 int *direct_io,
 					 int *has_refcount)
 {
-	int ret = 0, meta_level = 0;
+	int ret = 0, meta_level = 0, refcount = 0;
 	struct inode *inode = dentry->d_inode;
 	loff_t saved_pos, end;
 
@@ -1834,6 +1834,7 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry,
 							       saved_pos,
 							       count,
 							       &meta_level);
+			refcount = 1;
 			if (has_refcount)
 				*has_refcount = 1;
 		}
@@ -1859,7 +1860,7 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry,
 			break;
 		}
 
-		if (has_refcount && *has_refcount == 1) {
+		if (refcount) {
 			*direct_io = 0;
 			break;
 		}
-- 
1.6.6

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-02-09  1:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-04 21:20 [Ocfs2-devel] [PATCH] ocfs2: fix a refcount condition checking Wengang Wang
2010-02-05  0:58 ` Tao Ma
2010-02-05  2:23   ` Wengang Wang
2010-02-05  2:30     ` Tao Ma
2010-02-05  3:21       ` Wengang Wang
2010-02-09  1:06 ` Joel Becker
2010-02-09  1:15   ` Tao Ma

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.