dlm: make plock operation killable
authorDavid Teigland <teigland@redhat.com>
Wed, 2 Mar 2011 20:20:04 +0000 (14:20 -0600)
committerDavid Teigland <teigland@redhat.com>
Mon, 23 May 2011 15:47:06 +0000 (10:47 -0500)
commit901025d2f3194b4868980c8ba80df4cc0aa1282c
tree66df1472a10def86391b124ea69d6f182aef98db
parent2a7ce0edd661b3144c7b916ecf1eba0967b6d4a5
dlm: make plock operation killable

Allow processes blocked on plock requests to be interrupted
when they are killed.  This leaves the problem of cleaning
up the lock state in userspace.  This has three parts:

1. Add a flag to unlock operations sent to userspace
indicating the file is being closed.  Userspace will
then look for and clear any waiting plock operations that
were abandoned by an interrupted process.

2. Queue an unlock-close operation (like in 1) to clean up
userspace from an interrupted plock request.  This is needed
because the vfs will not send a cleanup-unlock if it sees no
locks on the file, which it won't if the interrupted operation
was the only one.

3. Do not use replies from userspace for unlock-close operations
because they are unnecessary (they are just cleaning up for the
process which did not make an unlock call).  This also simplifies
the new unlock-close generated from point 2.

Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/plock.c
include/linux/dlm_plock.h