| From 3cfa1d37bc05179577c43f4ed6b2689556729813 Mon Sep 17 00:00:00 2001 |
| From: Alex Elder <elder@inktank.com> |
| Date: Sat, 26 May 2012 23:26:43 -0500 |
| Subject: libceph: provide osd number when creating osd |
| |
| From: Alex Elder <elder@inktank.com> |
| |
| (cherry picked from commit e10006f807ffc4d5b1d861305d18d9e8145891ca) |
| |
| 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ceph/osd_client.c | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/net/ceph/osd_client.c |
| +++ b/net/ceph/osd_client.c |
| @@ -624,7 +624,7 @@ static void osd_reset(struct ceph_connec |
| /* |
| * 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(struc |
| |
| 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(struc |
| 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 |
| 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]); |