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); |
