From: Sage Weil Date: Fri, 23 Jan 2009 20:52:19 +0000 (-0800) Subject: kclient: fix osd writes X-Git-Tag: v0.7~331 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=37348a1a7912a0532e3d25fe7974071387a5c49f;p=ceph.git kclient: fix osd writes Fixes commit 9664adfcb293c18fa69febad550f6b98b9d2feb5. --- diff --git a/src/kernel/osd_client.c b/src/kernel/osd_client.c index 248b29147409..888a80f9b496 100644 --- a/src/kernel/osd_client.c +++ b/src/kernel/osd_client.c @@ -272,11 +272,15 @@ static int map_osds(struct ceph_osd_client *osdc, if (ceph_osd_is_up(osdc->osdmap, osds[i])) osds[j++] = osds[i]; num = j; + dout(20, "map_osds req %p maps to %d osds\n", req, num); /* same? */ if (num == req->r_pg_num_osds && - memcpy(osds, req->r_pg_osds, sizeof(osds[0]) * num) == 0) + memcmp(osds, req->r_pg_osds, sizeof(osds[0]) * num) == 0) return 0; + + memcpy(req->r_pg_osds, osds, sizeof(osds[0]) * num); + req->r_pg_num_osds = num; return 1; }