summaryrefslogtreecommitdiffstats
path: root/fs/dlm/dlm_internal.h
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2007-01-15 10:34:52 -0600
committerSteven Whitehouse <swhiteho@redhat.com>2007-02-05 13:36:55 -0500
commita1bc86e6bddd34362ca08a3a4d898eb4b5c15215 (patch)
tree92b30f8f9400c5a1b71a2e3a17397b9d0b2cc2f2 /fs/dlm/dlm_internal.h
parent1d6e8131cf0064ef5ab5f3411a82b800afbfadee (diff)
downloadlinux-a1bc86e6bddd34362ca08a3a4d898eb4b5c15215.tar.gz
linux-a1bc86e6bddd34362ca08a3a4d898eb4b5c15215.tar.bz2
linux-a1bc86e6bddd34362ca08a3a4d898eb4b5c15215.zip
[DLM] fix user unlocking
When a user process exits, we clear all the locks it holds. There is a problem, though, with locks that the process had begun unlocking before it exited. We couldn't find the lkb's that were in the process of being unlocked remotely, to flag that they are DEAD. To solve this, we move lkb's being unlocked onto a new list in the per-process structure that tracks what locks the process is holding. We can then go through this list to flag the necessary lkb's when clearing locks for a process when it exits. Signed-off-by: David Teigland <teigland@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/dlm/dlm_internal.h')
-rw-r--r--fs/dlm/dlm_internal.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h
index ee993c5c2307..61d93201e1b2 100644
--- a/fs/dlm/dlm_internal.h
+++ b/fs/dlm/dlm_internal.h
@@ -526,6 +526,7 @@ struct dlm_user_proc {
spinlock_t asts_spin;
struct list_head locks;
spinlock_t locks_spin;
+ struct list_head unlocking;
wait_queue_head_t wait;
};