dlm: close othercons
authorPatrick Caulfeld <pcaulfie@redhat.com>
Wed, 9 Jan 2008 15:06:27 +0000 (15:06 +0000)
committerDavid Teigland <teigland@redhat.com>
Tue, 29 Jan 2008 23:17:32 +0000 (17:17 -0600)
This patch addresses a problem introduced with the last round of
lowcomms patches where the 'othercon' connections do not get freed when
the DLM shuts down.

This results in the error message
"slab error in kmem_cache_destroy(): cache `dlm_conn': Can't free all
objects"

and the DLM cannot be restarted without a system reboot.

See bz#428119

Signed-off-by: Patrick Caulfield <pcaulfie@redhat.com>
Signed-off-by: Fabio M. Di Nitto <fabbione@ubuntu.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lowcomms.c

index 57728448f1b9d2b6ad30061781b2081c47c89725..7c1e5e5cccd8ae97a87a618ad9818d5b35721553 100644 (file)
@@ -1437,6 +1437,8 @@ void dlm_lowcomms_stop(void)
                con = __nodeid2con(i, 0);
                if (con) {
                        close_connection(con, true);
+                       if (con->othercon)
+                               kmem_cache_free(con_cache, con->othercon);
                        kmem_cache_free(con_cache, con);
                }
        }