lkml.org 
[lkml]   [2012]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 085/270] libceph: init monitor connection when opening
    Date
    3.5.7u1 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Alex Elder <elder@inktank.com>

    commit 20581c1faf7b15ae1f8b80c0ec757877b0b53151 upstream.

    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: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    ---
    net/ceph/mon_client.c | 13 ++++++-------
    1 file changed, 6 insertions(+), 7 deletions(-)

    diff --git a/net/ceph/mon_client.c b/net/ceph/mon_client.c
    index b59ca7a..fec3147 100644
    --- a/net/ceph/mon_client.c
    +++ b/net/ceph/mon_client.c
    @@ -119,6 +119,7 @@ static void __close_session(struct ceph_mon_client *monc)
    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_mon_client *monc)
    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_client *monc, struct ceph_client *cl)
    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_client *monc)
    mutex_lock(&monc->mutex);
    __close_session(monc);

    - monc->con.private = NULL;
    -
    mutex_unlock(&monc->mutex);

    /*
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2012-11-26 19:41    [W:4.171 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site