libceph: no need to drop con->mutex for ->get_authorizer()
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>
This commit is contained in:
parent
9041d1e200
commit
bd180ec81f
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user