2cdc98aaf0
Red Hat BZ 211914 When many nodes are joining a lockspace simultaneously, the dlm gets a quick sequence of stop/start events, a pair for adding each node. dlm_controld in user space sends dlm_recoverd in the kernel each stop and start event. dlm_controld will sometimes send the stop before dlm_recoverd has had a chance to take up the previously queued start. The stop aborts the processing of the previous start by setting the RECOVERY_STOP flag. dlm_recoverd is erroneously clearing this flag and ignoring the stop/abort if it happens to take up the start after the stop meant to abort it. The fix is to check the sequence number that's incremented for each stop/start before clearing the flag. Signed-off-by: David Teigland <teigland@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
ast.c | ||
ast.h | ||
config.c | ||
config.h | ||
debug_fs.c | ||
dir.c | ||
dir.h | ||
dlm_internal.h | ||
lock.c | ||
lock.h | ||
lockspace.c | ||
lockspace.h | ||
lowcomms-sctp.c | ||
lowcomms-tcp.c | ||
lowcomms.h | ||
lvb_table.h | ||
main.c | ||
member.c | ||
member.h | ||
memory.c | ||
memory.h | ||
midcomms.c | ||
midcomms.h | ||
rcom.c | ||
rcom.h | ||
recover.c | ||
recover.h | ||
recoverd.c | ||
recoverd.h | ||
requestqueue.c | ||
requestqueue.h | ||
user.c | ||
user.h | ||
util.c | ||
util.h |