linux/fs/dlm
David Teigland 7fe2b3190b dlm: fix ordering of bast and cast
When both blocking and completion callbacks are queued for lock,
the dlm would always deliver the completion callback (cast) first.
In some cases the blocking callback (bast) is queued before the
cast, though, and should be delivered first.  This patch keeps
track of the order in which they were queued and delivers them
in that order.

This patch also keeps track of the granted mode in the last cast
and eliminates the following bast if the bast mode is compatible
with the preceding cast mode.  This happens when a remotely mastered
lock is demoted, e.g. EX->NL, in which case the local node queues
a cast immediately after sending the demote message.  In this way
a cast can be queued for a mode, e.g. NL, that makes an in-transit
bast extraneous.

Signed-off-by: David Teigland <teigland@redhat.com>
2010-02-24 11:46:53 -06:00
..
ast.c dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
ast.h dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
config.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
config.h dlm: recover nodes that are removed and re-added 2008-04-21 11:18:01 -05:00
debug_fs.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
dir.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
dir.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
dlm_internal.h dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
Kconfig menuconfig: transform NLS and DLM menus 2007-10-17 08:43:00 -07:00
lock.c dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
lock.h dlm: make dlm_print_rsb() static 2008-04-21 11:18:01 -05:00
lockspace.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
lockspace.h dlm: detect available userspace daemon 2008-08-28 11:49:43 -05:00
lowcomms.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
lowcomms.h dlm: connect to nodes earlier 2009-05-15 09:34:12 -05:00
lvb_table.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
main.c dlm: move plock code from gfs2 2008-04-21 11:22:28 -05:00
Makefile dlm: move plock code from gfs2 2008-04-21 11:22:28 -05:00
member.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
member.h dlm: reject messages from non-members 2008-01-30 11:04:42 -06:00
memory.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
memory.h dlm: use dlm prefix on alloc and free functions 2008-01-29 17:17:19 -06:00
midcomms.c dlm: fix up memory allocation flags 2008-12-23 10:15:40 -06:00
midcomms.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
netlink.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
plock.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm 2009-12-10 09:33:59 -08:00
rcom.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
rcom.h [DLM] block dlm_recv in recovery transition 2007-10-10 08:56:38 +01:00
recover.c dlm: change rsbtbl rwlock to spinlock 2009-01-08 15:12:39 -06:00
recover.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
recoverd.c dlm: recover nodes that are removed and re-added 2008-04-21 11:18:01 -05:00
recoverd.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
requestqueue.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
requestqueue.h dlm: use proper C for dlm/requestqueue stuff (and fix alignment bug) 2008-02-04 01:21:32 -06:00
user.c dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
user.h dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
util.c dlm: do not byteswap rcom_config 2008-02-04 01:23:43 -06:00
util.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00