diff options
-rw-r--r-- | net/ceph/messenger.c | 18 |
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) | |||
656 | static struct ceph_auth_handshake *get_connect_authorizer(struct ceph_connection *con, | 656 | static 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); |