| From efea1a38cd969f4b52ec5cc468d8143bb496efc2 Mon Sep 17 00:00:00 2001 |
| From: Alex Elder <elder@inktank.com> |
| Date: Sat, 26 May 2012 23:26:43 -0500 |
| Subject: libceph: init monitor connection when opening |
| |
| From: Alex Elder <elder@inktank.com> |
| |
| (cherry picked from commit 20581c1faf7b15ae1f8b80c0ec757877b0b53151) |
| |
| Hold off initializing a monitor client's connection until just |
| before it gets opened for use. |
| |
| Signed-off-by: Alex Elder <elder@inktank.com> |
| Reviewed-by: Sage Weil <sage@inktank.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ceph/mon_client.c | 13 ++++++------- |
| 1 file changed, 6 insertions(+), 7 deletions(-) |
| |
| --- a/net/ceph/mon_client.c |
| +++ b/net/ceph/mon_client.c |
| @@ -119,6 +119,7 @@ static void __close_session(struct ceph_ |
| dout("__close_session closing mon%d\n", monc->cur_mon); |
| ceph_con_revoke(&monc->con, monc->m_auth); |
| ceph_con_close(&monc->con); |
| + monc->con.private = NULL; |
| monc->cur_mon = -1; |
| monc->pending_auth = 0; |
| ceph_auth_reset(monc->auth); |
| @@ -141,9 +142,13 @@ static int __open_session(struct ceph_mo |
| monc->sub_renew_after = jiffies; /* i.e., expired */ |
| monc->want_next_osdmap = !!monc->want_next_osdmap; |
| |
| - dout("open_session mon%d opening\n", monc->cur_mon); |
| + ceph_con_init(&monc->client->msgr, &monc->con); |
| + monc->con.private = monc; |
| + monc->con.ops = &mon_con_ops; |
| monc->con.peer_name.type = CEPH_ENTITY_TYPE_MON; |
| monc->con.peer_name.num = cpu_to_le64(monc->cur_mon); |
| + |
| + dout("open_session mon%d opening\n", monc->cur_mon); |
| ceph_con_open(&monc->con, |
| &monc->monmap->mon_inst[monc->cur_mon].addr); |
| |
| @@ -760,10 +765,6 @@ int ceph_monc_init(struct ceph_mon_clien |
| goto out; |
| |
| /* connection */ |
| - ceph_con_init(&monc->client->msgr, &monc->con); |
| - monc->con.private = monc; |
| - monc->con.ops = &mon_con_ops; |
| - |
| /* authentication */ |
| monc->auth = ceph_auth_init(cl->options->name, |
| cl->options->key); |
| @@ -836,8 +837,6 @@ void ceph_monc_stop(struct ceph_mon_clie |
| mutex_lock(&monc->mutex); |
| __close_session(monc); |
| |
| - monc->con.private = NULL; |
| - |
| mutex_unlock(&monc->mutex); |
| |
| /* |