diff options
-rw-r--r-- | fs/ceph/mds_client.c | 9 | ||||
-rw-r--r-- | include/linux/ceph/messenger.h | 4 | ||||
-rw-r--r-- | net/ceph/messenger.c | 13 | ||||
-rw-r--r-- | net/ceph/osd_client.c | 9 |
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 | */ |
3403 | static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con, | 3403 | static 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 | */ |
2115 | static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con, | 2115 | static 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 | } |