linux-stable/fs/dlm
David Teigland 38aa8b0c59 [DLM] fix old rcom messages
A reply to a recovery message will often be received after the relevant
recovery sequence has aborted and the next recovery sequence has begun.
We need to ignore replies to these old messages from the previous
recovery.  There's already a way to do this for synchronous recovery
requests using the rc_id number, but not for async.

Each recovery sequence already has a locally unique sequence number
associated with it.  This patch adds a field to the rcom (recovery
message) structure where this recovery sequence number can be placed,
rc_seq.  When a node sends a reply to a recovery request, it copies the
rc_seq number it received into rc_seq_reply.  When the first node receives
the reply to its recovery message, it will check whether rc_seq_reply
matches the current recovery sequence number, ls_recover_seq, and if not
then it ignores the old reply.

An old, inadequate approach to filtering out old replies (checking if the
current stage of recovery has moved back to the start) has been removed
from two spots.

The protocol version number is changed to reflect the different rcom
structures.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2007-02-05 13:35:50 -05:00
..
ast.c [DLM] down conversion clearing flags 2006-08-23 16:07:31 -04:00
ast.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
config.c [DLM] PATCH 2/3 dlm: lowcomms close 2006-04-28 10:50:41 -04:00
config.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
debug_fs.c [GFS2] inode_diet: Replace inode.u.generic_ip with inode.i_private (gfs) 2006-09-28 08:32:24 -04:00
dir.c [DLM] Update DLM to the latest patch level 2006-01-20 08:47:07 +00: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 old rcom messages 2007-02-05 13:35:50 -05:00
Kconfig [DLM] Fix DLM config 2006-11-30 10:35:41 -05:00
lock.c [DLM] fix resend rcom lock 2007-02-05 13:35:47 -05:00
lock.h [DLM] dump rsb and locks on assert 2006-08-21 09:50:09 -04:00
lockspace.c [DLM] don't accept replies to old recovery messages 2006-11-30 10:37:14 -05:00
lockspace.h [DLM] dlm: user locks 2006-07-13 09:25:34 -04:00
lowcomms-sctp.c [DLM] Clean up lowcomms 2006-12-07 09:25:13 -05:00
lowcomms-tcp.c [DLM] fix compile warning 2006-12-15 12:51:22 -05:00
lowcomms.h [DLM] Clean up lowcomms 2006-12-07 09:25:13 -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] Clean up lowcomms 2006-12-07 09:25:13 -05:00
Makefile [DLM] Add support for tcp communications 2006-11-30 10:35:00 -05:00
member.c [DLM] fix aborted recovery during node removal 2006-11-30 10:35:13 -05:00
member.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
memory.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
memory.h [DLM] Remove range locks from the DLM 2006-02-23 09:56:38 +00:00
midcomms.c [DLM] Update DLM to the latest patch level 2006-01-20 08:47:07 +00:00
midcomms.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
rcom.c [DLM] fix old rcom messages 2007-02-05 13:35:50 -05:00
rcom.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
recover.c [DLM] res_recover_locks_count not reset when recover_locks is aborted 2006-11-30 10:35:03 -05:00
recover.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
recoverd.c [DLM] fix format warnings in rcom.c and recoverd.c 2006-11-30 10:37:22 -05:00
recoverd.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
requestqueue.c [DLM] fix add_requestqueue checking nodes list 2006-11-30 10:37:00 -05:00
requestqueue.h [DLM] fix requestqueue race 2006-11-30 10:35:10 -05:00
user.c [DLM] force removal of user lockspace 2006-08-31 12:15:37 -04:00
user.h [DLM] dlm: user locks 2006-07-13 09:25:34 -04:00
util.c [DLM] fix old rcom messages 2007-02-05 13:35:50 -05:00
util.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00