diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2008-05-21 17:21:42 +0100 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2008-06-27 09:39:25 +0100 |
commit | f3c9d38a26be32abf9b8897e9e0afc7166c712dd (patch) | |
tree | 01b892d0d01720a396589c1f537dd0997128a060 /fs/gfs2/locking/dlm/mount.c | |
parent | 6802e3400ff4549525930ee744030c36fce9cc73 (diff) | |
download | linux-stable-f3c9d38a26be32abf9b8897e9e0afc7166c712dd.tar.gz linux-stable-f3c9d38a26be32abf9b8897e9e0afc7166c712dd.tar.bz2 linux-stable-f3c9d38a26be32abf9b8897e9e0afc7166c712dd.zip |
[GFS2] Fix ordering bug in lock_dlm
This looks like a lot of change, but in fact its not. Mostly its
things moving from one file to another. The change is just that
instead of queuing lock completions and callbacks from the DLM
we now pass them directly to GFS2.
This gives us a net loss of two list heads per glock (a fair
saving in memory) plus a reduction in the latency of delivering
the messages to GFS2, plus we now have one thread fewer as well.
There was a bug where callbacks and completions could be delivered
in the wrong order due to this unnecessary queuing which is fixed
by this patch.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Cc: Bob Peterson <rpeterso@redhat.com>
Diffstat (limited to 'fs/gfs2/locking/dlm/mount.c')
-rw-r--r-- | fs/gfs2/locking/dlm/mount.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/fs/gfs2/locking/dlm/mount.c b/fs/gfs2/locking/dlm/mount.c index 470bdf650b50..0628520a445f 100644 --- a/fs/gfs2/locking/dlm/mount.c +++ b/fs/gfs2/locking/dlm/mount.c @@ -28,15 +28,11 @@ static struct gdlm_ls *init_gdlm(lm_callback_t cb, struct gfs2_sbd *sdp, ls->sdp = sdp; ls->fsflags = flags; spin_lock_init(&ls->async_lock); - INIT_LIST_HEAD(&ls->complete); - INIT_LIST_HEAD(&ls->blocking); INIT_LIST_HEAD(&ls->delayed); INIT_LIST_HEAD(&ls->submit); INIT_LIST_HEAD(&ls->all_locks); init_waitqueue_head(&ls->thread_wait); init_waitqueue_head(&ls->wait_control); - ls->thread1 = NULL; - ls->thread2 = NULL; ls->drop_time = jiffies; ls->jid = -1; |