aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ceph/messenger.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index bfddd87db788..1a80907282cc 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -656,8 +656,6 @@ static void prepare_write_keepalive(struct ceph_connection *con)
656static struct ceph_auth_handshake *get_connect_authorizer(struct ceph_connection *con, 656static struct ceph_auth_handshake *get_connect_authorizer(struct ceph_connection *con,
657 int *auth_proto) 657 int *auth_proto)
658{ 658{
659 void *auth_buf;
660 int auth_len;
661 struct ceph_auth_handshake *auth; 659 struct ceph_auth_handshake *auth;
662 660
663 if (!con->ops->get_authorizer) { 661 if (!con->ops->get_authorizer) {
@@ -680,15 +678,9 @@ static struct ceph_auth_handshake *get_connect_authorizer(struct ceph_connection
680 if (test_bit(CLOSED, &con->state) || test_bit(OPENING, &con->state)) 678 if (test_bit(CLOSED, &con->state) || test_bit(OPENING, &con->state))
681 return ERR_PTR(-EAGAIN); 679 return ERR_PTR(-EAGAIN);
682 680
683 auth_buf = auth->authorizer_buf;
684 auth_len = auth->authorizer_buf_len;
685 con->auth_reply_buf = auth->authorizer_reply_buf; 681 con->auth_reply_buf = auth->authorizer_reply_buf;
686 con->auth_reply_buf_len = auth->authorizer_reply_buf_len; 682 con->auth_reply_buf_len = auth->authorizer_reply_buf_len;
687 683
688 con->out_connect.authorizer_len = cpu_to_le32(auth_len);
689
690 if (auth_len)
691 ceph_con_out_kvec_add(con, auth_len, auth_buf);
692 684
693 return auth; 685 return auth;
694} 686}
@@ -737,12 +729,20 @@ static int prepare_write_connect(struct ceph_connection *con)
737 con->out_connect.protocol_version = cpu_to_le32(proto); 729 con->out_connect.protocol_version = cpu_to_le32(proto);
738 con->out_connect.flags = 0; 730 con->out_connect.flags = 0;
739 731
740 ceph_con_out_kvec_add(con, sizeof (con->out_connect), &con->out_connect);
741 auth_proto = CEPH_AUTH_UNKNOWN; 732 auth_proto = CEPH_AUTH_UNKNOWN;
742 auth = get_connect_authorizer(con, &auth_proto); 733 auth = get_connect_authorizer(con, &auth_proto);
743 if (IS_ERR(auth)) 734 if (IS_ERR(auth))
744 return PTR_ERR(auth); 735 return PTR_ERR(auth);
736
745 con->out_connect.authorizer_protocol = cpu_to_le32(auth_proto); 737 con->out_connect.authorizer_protocol = cpu_to_le32(auth_proto);
738 con->out_connect.authorizer_len = auth ?
739 cpu_to_le32(auth->authorizer_buf_len) : 0;
740
741 ceph_con_out_kvec_add(con, sizeof (con->out_connect),
742 &con->out_connect);
743 if (auth && auth->authorizer_buf_len)
744 ceph_con_out_kvec_add(con, auth->authorizer_buf_len,
745 auth->authorizer_buf);
746 746
747 con->out_more = 0; 747 con->out_more = 0;
748 set_bit(WRITE_PENDING, &con->state); 748 set_bit(WRITE_PENDING, &con->state);