diff options
| -rw-r--r-- | net/ceph/messenger.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index f92d564c1505..bfddd87db788 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c | |||
| @@ -653,11 +653,11 @@ static void prepare_write_keepalive(struct ceph_connection *con) | |||
| 653 | * Connection negotiation. | 653 | * Connection negotiation. |
| 654 | */ | 654 | */ |
| 655 | 655 | ||
| 656 | static struct ceph_auth_handshake *prepare_connect_authorizer(struct ceph_connection *con) | 656 | static struct ceph_auth_handshake *get_connect_authorizer(struct ceph_connection *con, |
| 657 | int *auth_proto) | ||
| 657 | { | 658 | { |
| 658 | void *auth_buf; | 659 | void *auth_buf; |
| 659 | int auth_len; | 660 | int auth_len; |
| 660 | int auth_protocol; | ||
| 661 | struct ceph_auth_handshake *auth; | 661 | struct ceph_auth_handshake *auth; |
| 662 | 662 | ||
| 663 | if (!con->ops->get_authorizer) { | 663 | if (!con->ops->get_authorizer) { |
| @@ -671,8 +671,7 @@ static struct ceph_auth_handshake *prepare_connect_authorizer(struct ceph_connec | |||
| 671 | 671 | ||
| 672 | mutex_unlock(&con->mutex); | 672 | mutex_unlock(&con->mutex); |
| 673 | 673 | ||
| 674 | auth_protocol = CEPH_AUTH_UNKNOWN; | 674 | auth = con->ops->get_authorizer(con, auth_proto, con->auth_retry); |
| 675 | auth = con->ops->get_authorizer(con, &auth_protocol, con->auth_retry); | ||
| 676 | 675 | ||
| 677 | mutex_lock(&con->mutex); | 676 | mutex_lock(&con->mutex); |
| 678 | 677 | ||
| @@ -686,7 +685,6 @@ static struct ceph_auth_handshake *prepare_connect_authorizer(struct ceph_connec | |||
| 686 | con->auth_reply_buf = auth->authorizer_reply_buf; | 685 | con->auth_reply_buf = auth->authorizer_reply_buf; |
| 687 | con->auth_reply_buf_len = auth->authorizer_reply_buf_len; | 686 | con->auth_reply_buf_len = auth->authorizer_reply_buf_len; |
| 688 | 687 | ||
| 689 | con->out_connect.authorizer_protocol = cpu_to_le32(auth_protocol); | ||
| 690 | con->out_connect.authorizer_len = cpu_to_le32(auth_len); | 688 | con->out_connect.authorizer_len = cpu_to_le32(auth_len); |
| 691 | 689 | ||
| 692 | if (auth_len) | 690 | if (auth_len) |
| @@ -712,6 +710,7 @@ static int prepare_write_connect(struct ceph_connection *con) | |||
| 712 | { | 710 | { |
| 713 | unsigned global_seq = get_global_seq(con->msgr, 0); | 711 | unsigned global_seq = get_global_seq(con->msgr, 0); |
| 714 | int proto; | 712 | int proto; |
| 713 | int auth_proto; | ||
| 715 | struct ceph_auth_handshake *auth; | 714 | struct ceph_auth_handshake *auth; |
| 716 | 715 | ||
| 717 | switch (con->peer_name.type) { | 716 | switch (con->peer_name.type) { |
| @@ -739,9 +738,11 @@ static int prepare_write_connect(struct ceph_connection *con) | |||
| 739 | con->out_connect.flags = 0; | 738 | con->out_connect.flags = 0; |
| 740 | 739 | ||
| 741 | ceph_con_out_kvec_add(con, sizeof (con->out_connect), &con->out_connect); | 740 | ceph_con_out_kvec_add(con, sizeof (con->out_connect), &con->out_connect); |
| 742 | auth = prepare_connect_authorizer(con); | 741 | auth_proto = CEPH_AUTH_UNKNOWN; |
| 742 | auth = get_connect_authorizer(con, &auth_proto); | ||
| 743 | if (IS_ERR(auth)) | 743 | if (IS_ERR(auth)) |
| 744 | return PTR_ERR(auth); | 744 | return PTR_ERR(auth); |
| 745 | con->out_connect.authorizer_protocol = cpu_to_le32(auth_proto); | ||
| 745 | 746 | ||
| 746 | con->out_more = 0; | 747 | con->out_more = 0; |
| 747 | set_bit(WRITE_PENDING, &con->state); | 748 | set_bit(WRITE_PENDING, &con->state); |
