libceph: drop gratuitous socket close calls in con_work
authorSage Weil <sage@inktank.com>
Fri, 20 Jul 2012 22:40:04 +0000 (15:40 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 26 Nov 2012 19:38:40 +0000 (11:38 -0800)
(cherry picked from commit 2e8cb10063820af7ed7638e3fd9013eee21266e7)

If the state is CLOSED or OPENING, we shouldn't have a socket.

Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ceph/messenger.c

index cb871fc..7bd757c 100644 (file)
@@ -2284,15 +2284,15 @@ restart:
                dout("con_work %p STANDBY\n", con);
                goto done;
        }
-       if (test_bit(CLOSED, &con->state)) { /* e.g. if we are replaced */
-               dout("con_work CLOSED\n");
-               con_close_socket(con);
+       if (test_bit(CLOSED, &con->state)) {
+               dout("con_work %p CLOSED\n", con);
+               BUG_ON(con->sock);
                goto done;
        }
        if (test_and_clear_bit(OPENING, &con->state)) {
                /* reopen w/ new peer */
                dout("con_work OPENING\n");
-               con_close_socket(con);
+               BUG_ON(con->sock);
        }
 
        ret = try_read(con);