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 081/270] libceph: provide osd number when creating osd
    Date
    3.5.7u1 -stable review patch.  If anyone has any objections, please let me know.

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

    From: Alex Elder <elder@inktank.com>

    commit e10006f807ffc4d5b1d861305d18d9e8145891ca upstream.

    Pass the osd number to the create_osd() routine, and move the
    initialization of fields that depend on it therein.

    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/osd_client.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
    index dc532c5..cb5b847 100644
    --- a/net/ceph/osd_client.c
    +++ b/net/ceph/osd_client.c
    @@ -624,7 +624,7 @@ static void osd_reset(struct ceph_connection *con)
    /*
    * Track open sessions with osds.
    */
    -static struct ceph_osd *create_osd(struct ceph_osd_client *osdc)
    +static struct ceph_osd *create_osd(struct ceph_osd_client *osdc, int onum)
    {
    struct ceph_osd *osd;

    @@ -634,6 +634,7 @@ static struct ceph_osd *create_osd(struct ceph_osd_client *osdc)

    atomic_set(&osd->o_ref, 1);
    osd->o_osdc = osdc;
    + osd->o_osd = onum;
    INIT_LIST_HEAD(&osd->o_requests);
    INIT_LIST_HEAD(&osd->o_linger_requests);
    INIT_LIST_HEAD(&osd->o_osd_lru);
    @@ -643,6 +644,7 @@ static struct ceph_osd *create_osd(struct ceph_osd_client *osdc)
    osd->o_con.private = osd;
    osd->o_con.ops = &osd_con_ops;
    osd->o_con.peer_name.type = CEPH_ENTITY_TYPE_OSD;
    + osd->o_con.peer_name.num = cpu_to_le64(onum);

    INIT_LIST_HEAD(&osd->o_keepalive_item);
    return osd;
    @@ -998,15 +1000,13 @@ static int __map_request(struct ceph_osd_client *osdc,
    req->r_osd = __lookup_osd(osdc, o);
    if (!req->r_osd && o >= 0) {
    err = -ENOMEM;
    - req->r_osd = create_osd(osdc);
    + req->r_osd = create_osd(osdc, o);
    if (!req->r_osd) {
    list_move(&req->r_req_lru_item, &osdc->req_notarget);
    goto out;
    }

    dout("map_request osd %p is osd%d\n", req->r_osd, o);
    - req->r_osd->o_osd = o;
    - req->r_osd->o_con.peer_name.num = cpu_to_le64(o);
    __insert_osd(osdc, req->r_osd);

    ceph_con_open(&req->r_osd->o_con, &osdc->osdmap->osd_addr[o]);
    --
    1.7.9.5


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