[Ocfs2-devel] [PATCH] ocfs2: fix __ocfs2_cluster_lock() dead lock

Sunil Mushran sunil.mushran at oracle.com
Wed Jan 13 11:14:48 PST 2010


Joel Becker wrote:
> On Wed, Jan 13, 2010 at 11:20:49AM +0800, Wengang Wang wrote:
>> before update_holders, the lock could be DCed(since no BUSY flag set by
>> here).
>>
>> and even after update_holders, the lock could be DCed too.
>>
>> so that we get ocfs2_cluster_lock()(with holders increased) returned sucessfully
>> but actually we don't hold the dlm lock. --thus more than one node is
>> considering that they have the (EX) lock.
>
> 	You make a good point.  I don't like the solution you propose,
> though.  Another flag that's almost the same?  Eww!  There's got to be a
> better way.

I don't see how we can resolve this without another flag. It could
be a mirror image of the PENDING flag. PENDING takes care of the gap
between BUSY set and calling dlm_lock(). This flag has to take care
of the gap between BUSY clear and inc_holders.

Am working on improving Wengang's patch.

Mark is strangely silent.



More information about the Ocfs2-devel mailing list