提交 3c0d0894 编写于 作者: I Ilya Dryomov

libceph: don't pass result into ac->ops->handle_reply()

There is no result to pass in msgr2 case because authentication
failures are reported through auth_bad_method frame and in MAuth
case an error is returned immediately.
Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
Reviewed-by: NJeff Layton <jlayton@kernel.org>
上级 7a971e2c
...@@ -50,7 +50,7 @@ struct ceph_auth_client_ops { ...@@ -50,7 +50,7 @@ struct ceph_auth_client_ops {
* another request. * another request.
*/ */
int (*build_request)(struct ceph_auth_client *ac, void *buf, void *end); int (*build_request)(struct ceph_auth_client *ac, void *buf, void *end);
int (*handle_reply)(struct ceph_auth_client *ac, int result, int (*handle_reply)(struct ceph_auth_client *ac,
void *buf, void *end, u8 *session_key, void *buf, void *end, u8 *session_key,
int *session_key_len, u8 *con_secret, int *session_key_len, u8 *con_secret,
int *con_secret_len); int *con_secret_len);
......
...@@ -260,14 +260,19 @@ int ceph_handle_auth_reply(struct ceph_auth_client *ac, ...@@ -260,14 +260,19 @@ int ceph_handle_auth_reply(struct ceph_auth_client *ac,
ac->negotiating = false; ac->negotiating = false;
} }
ret = ac->ops->handle_reply(ac, result, payload, payload_end, if (result) {
pr_err("auth protocol '%s' mauth authentication failed: %d\n",
ceph_auth_proto_name(ac->protocol), result);
ret = result;
goto out;
}
ret = ac->ops->handle_reply(ac, payload, payload_end,
NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL);
if (ret == -EAGAIN) { if (ret == -EAGAIN) {
ret = build_request(ac, true, reply_buf, reply_len); ret = build_request(ac, true, reply_buf, reply_len);
goto out; goto out;
} else if (ret) { } else if (ret) {
pr_err("auth protocol '%s' mauth authentication failed: %d\n",
ceph_auth_proto_name(ac->protocol), result);
goto out; goto out;
} }
...@@ -480,7 +485,7 @@ int ceph_auth_handle_reply_more(struct ceph_auth_client *ac, void *reply, ...@@ -480,7 +485,7 @@ int ceph_auth_handle_reply_more(struct ceph_auth_client *ac, void *reply,
int ret; int ret;
mutex_lock(&ac->mutex); mutex_lock(&ac->mutex);
ret = ac->ops->handle_reply(ac, 0, reply, reply + reply_len, ret = ac->ops->handle_reply(ac, reply, reply + reply_len,
NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL);
if (ret == -EAGAIN) if (ret == -EAGAIN)
ret = build_request(ac, false, buf, buf_len); ret = build_request(ac, false, buf, buf_len);
...@@ -498,7 +503,7 @@ int ceph_auth_handle_reply_done(struct ceph_auth_client *ac, ...@@ -498,7 +503,7 @@ int ceph_auth_handle_reply_done(struct ceph_auth_client *ac,
int ret; int ret;
mutex_lock(&ac->mutex); mutex_lock(&ac->mutex);
ret = ac->ops->handle_reply(ac, 0, reply, reply + reply_len, ret = ac->ops->handle_reply(ac, reply, reply + reply_len,
session_key, session_key_len, session_key, session_key_len,
con_secret, con_secret_len); con_secret, con_secret_len);
if (!ret) if (!ret)
......
...@@ -69,7 +69,7 @@ static int build_request(struct ceph_auth_client *ac, void *buf, void *end) ...@@ -69,7 +69,7 @@ static int build_request(struct ceph_auth_client *ac, void *buf, void *end)
* the generic auth code decode the global_id, and we carry no actual * the generic auth code decode the global_id, and we carry no actual
* authenticate state, so nothing happens here. * authenticate state, so nothing happens here.
*/ */
static int handle_reply(struct ceph_auth_client *ac, int result, static int handle_reply(struct ceph_auth_client *ac,
void *buf, void *end, u8 *session_key, void *buf, void *end, u8 *session_key,
int *session_key_len, u8 *con_secret, int *session_key_len, u8 *con_secret,
int *con_secret_len) int *con_secret_len)
...@@ -77,7 +77,7 @@ static int handle_reply(struct ceph_auth_client *ac, int result, ...@@ -77,7 +77,7 @@ static int handle_reply(struct ceph_auth_client *ac, int result,
struct ceph_auth_none_info *xi = ac->private; struct ceph_auth_none_info *xi = ac->private;
xi->starting = false; xi->starting = false;
return result; return 0;
} }
static void ceph_auth_none_destroy_authorizer(struct ceph_authorizer *a) static void ceph_auth_none_destroy_authorizer(struct ceph_authorizer *a)
......
...@@ -661,7 +661,7 @@ static int handle_auth_session_key(struct ceph_auth_client *ac, ...@@ -661,7 +661,7 @@ static int handle_auth_session_key(struct ceph_auth_client *ac,
return -EINVAL; return -EINVAL;
} }
static int ceph_x_handle_reply(struct ceph_auth_client *ac, int result, static int ceph_x_handle_reply(struct ceph_auth_client *ac,
void *buf, void *end, void *buf, void *end,
u8 *session_key, int *session_key_len, u8 *session_key, int *session_key_len,
u8 *con_secret, int *con_secret_len) u8 *con_secret, int *con_secret_len)
...@@ -669,13 +669,11 @@ static int ceph_x_handle_reply(struct ceph_auth_client *ac, int result, ...@@ -669,13 +669,11 @@ static int ceph_x_handle_reply(struct ceph_auth_client *ac, int result,
struct ceph_x_info *xi = ac->private; struct ceph_x_info *xi = ac->private;
struct ceph_x_ticket_handler *th; struct ceph_x_ticket_handler *th;
int len = end - buf; int len = end - buf;
int result;
void *p; void *p;
int op; int op;
int ret; int ret;
if (result)
return result; /* XXX hmm? */
if (xi->starting) { if (xi->starting) {
/* it's a hello */ /* it's a hello */
struct ceph_x_server_challenge *sc = buf; struct ceph_x_server_challenge *sc = buf;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册