fs: dlm: cleanup STOP_IO bitflag set when stop io
authorAlexander Aring <aahringo@redhat.com>
Mon, 29 May 2023 21:44:34 +0000 (17:44 -0400)
committerDavid Teigland <teigland@redhat.com>
Wed, 14 Jun 2023 15:17:33 +0000 (10:17 -0500)
There should no difference between setting the CF_IO_STOP flag
before restore_callbacks() to do it before or afterwards. The
restore_callbacks() will be sure that no callback is executed anymore
when the bit wasn't set.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lowcomms.c

index b28505b..5a75866 100644 (file)
@@ -735,19 +735,15 @@ static void stop_connection_io(struct connection *con)
        if (con->othercon)
                stop_connection_io(con->othercon);
 
+       spin_lock_bh(&con->writequeue_lock);
+       set_bit(CF_IO_STOP, &con->flags);
+       spin_unlock_bh(&con->writequeue_lock);
+
        down_write(&con->sock_lock);
        if (con->sock) {
                lock_sock(con->sock->sk);
                restore_callbacks(con->sock->sk);
-
-               spin_lock_bh(&con->writequeue_lock);
-               set_bit(CF_IO_STOP, &con->flags);
-               spin_unlock_bh(&con->writequeue_lock);
                release_sock(con->sock->sk);
-       } else {
-               spin_lock_bh(&con->writequeue_lock);
-               set_bit(CF_IO_STOP, &con->flags);
-               spin_unlock_bh(&con->writequeue_lock);
        }
        up_write(&con->sock_lock);