diff options
author | David Teigland <teigland@redhat.com> | 2007-01-15 10:34:52 -0600 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2007-02-05 13:36:55 -0500 |
commit | a1bc86e6bddd34362ca08a3a4d898eb4b5c15215 (patch) | |
tree | 92b30f8f9400c5a1b71a2e3a17397b9d0b2cc2f2 /fs/dlm/dlm_internal.h | |
parent | 1d6e8131cf0064ef5ab5f3411a82b800afbfadee (diff) | |
download | linux-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.h | 1 |
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; }; |