aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ceph/mds_client.c9
-rw-r--r--include/linux/ceph/messenger.h4
-rw-r--r--net/ceph/messenger.c13
-rw-r--r--net/ceph/osd_client.c9
4 files changed, 10 insertions, 25 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index 67938a9d049..200bc87eceb 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -3401,9 +3401,7 @@ out:
3401 * managed separately. Caller must *not* attempt to free it. 3401 * managed separately. Caller must *not* attempt to free it.
3402 */ 3402 */
3403static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con, 3403static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
3404 void **buf, int *len, int *proto, 3404 int *proto, int force_new)
3405 void **reply_buf, int *reply_len,
3406 int force_new)
3407{ 3405{
3408 struct ceph_mds_session *s = con->private; 3406 struct ceph_mds_session *s = con->private;
3409 struct ceph_mds_client *mdsc = s->s_mdsc; 3407 struct ceph_mds_client *mdsc = s->s_mdsc;
@@ -3421,12 +3419,7 @@ static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
3421 if (ret) 3419 if (ret)
3422 return ERR_PTR(ret); 3420 return ERR_PTR(ret);
3423 } 3421 }
3424
3425 *proto = ac->protocol; 3422 *proto = ac->protocol;
3426 *buf = auth->authorizer_buf;
3427 *len = auth->authorizer_buf_len;
3428 *reply_buf = auth->authorizer_reply_buf;
3429 *reply_len = auth->authorizer_reply_buf_len;
3430 3423
3431 return auth; 3424 return auth;
3432} 3425}
diff --git a/include/linux/ceph/messenger.h b/include/linux/ceph/messenger.h
index b10b55f8f30..2521a95fa6d 100644
--- a/include/linux/ceph/messenger.h
+++ b/include/linux/ceph/messenger.h
@@ -27,9 +27,7 @@ struct ceph_connection_operations {
27 /* authorize an outgoing connection */ 27 /* authorize an outgoing connection */
28 struct ceph_auth_handshake *(*get_authorizer) ( 28 struct ceph_auth_handshake *(*get_authorizer) (
29 struct ceph_connection *con, 29 struct ceph_connection *con,
30 void **buf, int *len, int *proto, 30 int *proto, int force_new);
31 void **reply_buf, int *reply_len,
32 int force_new);
33 int (*verify_authorizer_reply) (struct ceph_connection *con, int len); 31 int (*verify_authorizer_reply) (struct ceph_connection *con, int len);
34 int (*invalidate_authorizer)(struct ceph_connection *con); 32 int (*invalidate_authorizer)(struct ceph_connection *con);
35 33
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index ac27a2c0694..6d82c1a1a89 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -671,20 +671,21 @@ static int prepare_connect_authorizer(struct ceph_connection *con)
671 671
672 mutex_unlock(&con->mutex); 672 mutex_unlock(&con->mutex);
673 673
674 auth_buf = NULL;
675 auth_len = 0;
676 auth_protocol = CEPH_AUTH_UNKNOWN; 674 auth_protocol = CEPH_AUTH_UNKNOWN;
677 auth = con->ops->get_authorizer(con, &auth_buf, &auth_len, 675 auth = con->ops->get_authorizer(con, &auth_protocol, con->auth_retry);
678 &auth_protocol, &con->auth_reply_buf, 676
679 &con->auth_reply_buf_len, con->auth_retry);
680 mutex_lock(&con->mutex); 677 mutex_lock(&con->mutex);
681 678
682 if (IS_ERR(auth)) 679 if (IS_ERR(auth))
683 return PTR_ERR(auth); 680 return PTR_ERR(auth);
684
685 if (test_bit(CLOSED, &con->state) || test_bit(OPENING, &con->state)) 681 if (test_bit(CLOSED, &con->state) || test_bit(OPENING, &con->state))
686 return -EAGAIN; 682 return -EAGAIN;
687 683
684 auth_buf = auth->authorizer_buf;
685 auth_len = auth->authorizer_buf_len;
686 con->auth_reply_buf = auth->authorizer_reply_buf;
687 con->auth_reply_buf_len = auth->authorizer_reply_buf_len;
688
688 con->out_connect.authorizer_protocol = cpu_to_le32(auth_protocol); 689 con->out_connect.authorizer_protocol = cpu_to_le32(auth_protocol);
689 con->out_connect.authorizer_len = cpu_to_le32(auth_len); 690 con->out_connect.authorizer_len = cpu_to_le32(auth_len);
690 691
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index fa74ae0ea91..b7d633cc96a 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -2113,9 +2113,7 @@ static void put_osd_con(struct ceph_connection *con)
2113 * managed separately. Caller must *not* attempt to free it. 2113 * managed separately. Caller must *not* attempt to free it.
2114 */ 2114 */
2115static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con, 2115static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
2116 void **buf, int *len, int *proto, 2116 int *proto, int force_new)
2117 void **reply_buf, int *reply_len,
2118 int force_new)
2119{ 2117{
2120 struct ceph_osd *o = con->private; 2118 struct ceph_osd *o = con->private;
2121 struct ceph_osd_client *osdc = o->o_osdc; 2119 struct ceph_osd_client *osdc = o->o_osdc;
@@ -2133,12 +2131,7 @@ static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
2133 if (ret) 2131 if (ret)
2134 return ERR_PTR(ret); 2132 return ERR_PTR(ret);
2135 } 2133 }
2136
2137 *proto = ac->protocol; 2134 *proto = ac->protocol;
2138 *buf = auth->authorizer_buf;
2139 *len = auth->authorizer_buf_len;
2140 *reply_buf = auth->authorizer_reply_buf;
2141 *reply_len = auth->authorizer_reply_buf_len;
2142 2135
2143 return auth; 2136 return auth;
2144} 2137}