[DLM] status messages ping-pong between unmounted nodes
authorDavid Teigland <teigland@redhat.com>
Thu, 2 Nov 2006 15:45:56 +0000 (09:45 -0600)
committerSteven Whitehouse <swhiteho@redhat.com>
Thu, 30 Nov 2006 15:35:06 +0000 (10:35 -0500)
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>
fs/dlm/rcom.c

index 518239a8b1e90f00dc6c33c3b834c004d402e5dd..87b12f7d3d22309e8ad293d492faf0ac7a52ca29 100644 (file)
@@ -412,9 +412,10 @@ void dlm_receive_rcom(struct dlm_header *hd, int nodeid)
 
        ls = dlm_find_lockspace_global(hd->h_lockspace);
        if (!ls) {
-               log_print("lockspace %x from %d not found",
-                         hd->h_lockspace, nodeid);
-               send_ls_not_ready(nodeid, rc);
+               log_print("lockspace %x from %d type %x not found",
+                         hd->h_lockspace, nodeid, rc->rc_type);
+               if (rc->rc_type == DLM_RCOM_STATUS)
+                       send_ls_not_ready(nodeid, rc);
                return;
        }