Re: [Ocfs2-devel] [PATCH] ocfs2: unlock open_lock immediately

2011-09-07 Thread Joel Becker
On Fri, Aug 26, 2011 at 10:50:27AM +0800, Wengang Wang wrote: There is a race between 2(+) nodes that calls iput_final() on same inode. time sequence is like the following. The result is neither of the 2(+) node does real inode deletion work and the unlinked inode is left in orphandir.

Re: [Ocfs2-devel] [PATCH] ocfs2: unlock open_lock immediately

2011-09-07 Thread Wengang Wang
Hi Joel, On 11-09-07 11:04, Joel Becker wrote: On Fri, Aug 26, 2011 at 10:50:27AM +0800, Wengang Wang wrote: There is a race between 2(+) nodes that calls iput_final() on same inode. time sequence is like the following. The result is neither of the 2(+) node does real inode deletion work

Re: [Ocfs2-devel] [PATCH] ocfs2: unlock open_lock immediately

2011-08-31 Thread Wengang Wang
On 11-08-31 10:36, Sunil Mushran wrote: On 08/30/2011 07:51 PM, Wengang Wang wrote: The test case is simple: in a three-node cluster, 1) node A copies kernel tree to ocfs2 volume 2) node B and C keeps ls -R the tree which is under copying 3) after the copy finished, remove the whole tree by

Re: [Ocfs2-devel] [PATCH] ocfs2: unlock open_lock immediately

2011-08-30 Thread Sunil Mushran
Comments inlined. BTW, how common place is this race in your testing? If you can answer that, I would like to also know how you arrived at it. On 08/25/2011 07:50 PM, Wengang Wang wrote: There is a race between 2(+) nodes that calls iput_final() on same inode. time sequence is like the

Re: [Ocfs2-devel] [PATCH] ocfs2: unlock open_lock immediately

2011-08-30 Thread Wengang Wang
Hi Sunil, thanks for you review! On 11-08-30 18:55, Sunil Mushran wrote: Comments inlined. BTW, how common place is this race in your testing? If you can answer that, I would like to also know how you arrived at it. The test case is simple: in a three-node cluster, 1) node A copies kernel

[Ocfs2-devel] [PATCH] ocfs2: unlock open_lock immediately

2011-08-25 Thread Wengang Wang
There is a race between 2(+) nodes that calls iput_final() on same inode. time sequence is like the following. The result is neither of the 2(+) node does real inode deletion work and the unlinked inode is left in orphandir. -- node A