]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
libceph: no need to drop con->mutex for ->get_authorizer()
authorIlya Dryomov <idryomov@gmail.com>
Fri, 2 Dec 2016 15:35:09 +0000 (16:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 8 Dec 2018 12:05:09 +0000 (13:05 +0100)
commit b3bbd3f2ab19c8ca319003b4b51ce4c4ca74da06 upstream.

->get_authorizer(), ->verify_authorizer_reply(), ->sign_message() and
->check_message_signature() shouldn't be doing anything with or on the
connection (like closing it or sending messages).

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ceph/messenger.c

index 4e669e6b94aaf81fd8944e2ecf8b82ccbcee9017..aa124756f131765d32454f160667019053540d59 100644 (file)
@@ -1405,15 +1405,9 @@ static struct ceph_auth_handshake *get_connect_authorizer(struct ceph_connection
                return NULL;
        }
 
-       /* Can't hold the mutex while getting authorizer */
-       mutex_unlock(&con->mutex);
        auth = con->ops->get_authorizer(con, auth_proto, con->auth_retry);
-       mutex_lock(&con->mutex);
-
        if (IS_ERR(auth))
                return auth;
-       if (con->state != CON_STATE_NEGOTIATING)
-               return ERR_PTR(-EAGAIN);
 
        con->auth_reply_buf = auth->authorizer_reply_buf;
        con->auth_reply_buf_len = auth->authorizer_reply_buf_len;