mirror of https://gitee.com/openkylin/linux.git
ceph: do not resend mon requests on auth ticket renewal
We only want to send pending mon requests when we successfully authenticate. If we are already authenticated, like when we renew our ticket, there is no need to resend pending requests. Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
parent
984c76908e
commit
09c4d6a7d4
|
@ -704,8 +704,11 @@ static void handle_auth_reply(struct ceph_mon_client *monc,
|
|||
struct ceph_msg *msg)
|
||||
{
|
||||
int ret;
|
||||
int was_auth = 0;
|
||||
|
||||
mutex_lock(&monc->mutex);
|
||||
if (monc->auth->ops)
|
||||
was_auth = monc->auth->ops->is_authenticated(monc->auth);
|
||||
monc->pending_auth = 0;
|
||||
ret = ceph_handle_auth_reply(monc->auth, msg->front.iov_base,
|
||||
msg->front.iov_len,
|
||||
|
@ -716,7 +719,7 @@ static void handle_auth_reply(struct ceph_mon_client *monc,
|
|||
wake_up(&monc->client->auth_wq);
|
||||
} else if (ret > 0) {
|
||||
__send_prepared_auth_request(monc, ret);
|
||||
} else if (monc->auth->ops->is_authenticated(monc->auth)) {
|
||||
} else if (!was_auth && monc->auth->ops->is_authenticated(monc->auth)) {
|
||||
dout("authenticated, starting session\n");
|
||||
|
||||
monc->client->msgr->inst.name.type = CEPH_ENTITY_TYPE_CLIENT;
|
||||
|
|
Loading…
Reference in New Issue