diff options
author | David Teigland <teigland@redhat.com> | 2006-11-02 10:45:56 -0500 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-11-30 10:35:06 -0500 |
commit | 435618b75b82b5ee511cc01fcdda9c44adb2f4bd (patch) | |
tree | d837e977d881458b2c71a2d1dec5d533ad82fefe | |
parent | 520698096436f7da5b9142e63e3bed5580c5f14e (diff) |
[DLM] status messages ping-pong between unmounted nodes
Red Hat BZ 213682
If two nodes leave the lockspace (while unmounting the fs in the case of
gfs) after one has sent a STATUS message to the other, STATUS/STATUS_REPLY
messages will then ping-pong between the nodes when neither of them can
find the lockspace in question any longer. We kill this by not sending
another STATUS message when we get a STATUS_REPLY for an unknown
lockspace.
Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
-rw-r--r-- | fs/dlm/rcom.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/dlm/rcom.c b/fs/dlm/rcom.c index 518239a8b1e9..87b12f7d3d22 100644 --- a/fs/dlm/rcom.c +++ b/fs/dlm/rcom.c | |||
@@ -412,9 +412,10 @@ void dlm_receive_rcom(struct dlm_header *hd, int nodeid) | |||
412 | 412 | ||
413 | ls = dlm_find_lockspace_global(hd->h_lockspace); | 413 | ls = dlm_find_lockspace_global(hd->h_lockspace); |
414 | if (!ls) { | 414 | if (!ls) { |
415 | log_print("lockspace %x from %d not found", | 415 | log_print("lockspace %x from %d type %x not found", |
416 | hd->h_lockspace, nodeid); | 416 | hd->h_lockspace, nodeid, rc->rc_type); |
417 | send_ls_not_ready(nodeid, rc); | 417 | if (rc->rc_type == DLM_RCOM_STATUS) |
418 | send_ls_not_ready(nodeid, rc); | ||
418 | return; | 419 | return; |
419 | } | 420 | } |
420 | 421 | ||