dlm: fix race between remove and lookup
authorDavid Teigland <teigland@redhat.com>
Thu, 14 Jun 2012 17:17:32 +0000 (12:17 -0500)
committerDavid Teigland <teigland@redhat.com>
Mon, 16 Jul 2012 19:18:01 +0000 (14:18 -0500)
commit05c32f47bfae74dabff05208957768078b53cc49
tree71034eba054f49723a0dac41f6bcd9d4f37eb2bc
parent1d7c484eeb167fc374294e38ae402de4097c8611
dlm: fix race between remove and lookup

It was possible for a remove message on an old
rsb to be sent after a lookup message on a new
rsb, where the rsbs were for the same resource
name.  This could lead to a missing directory
entry for the new rsb.

It is fixed by keeping a copy of the resource
name being removed until after the remove has
been sent.  A lookup checks if this in-progress
remove matches the name it is looking up.

Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/dlm_internal.h
fs/dlm/lock.c
fs/dlm/lockspace.c