From: Sage Weil Date: Tue, 1 Sep 2009 23:07:55 +0000 (-0700) Subject: kclient: osd restart fixes X-Git-Tag: v0.14~63 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5901023c16d18f0135f1a66006d53ace6dc0446a;p=ceph.git kclient: osd restart fixes --- diff --git a/src/TODO b/src/TODO index fc888c9bf0ea..2468c75ba722 100644 --- a/src/TODO +++ b/src/TODO @@ -79,6 +79,8 @@ repair kclient - fix up ESTALE handling +- allow struct ceph_msg revoke from a connection +- don't retry on ENOMEM on non-nofail requests in kick_requests - make cap import/export more efficient? - flock, fnctl locks - ACLs diff --git a/src/kernel/osd_client.c b/src/kernel/osd_client.c index 108f0b90c2cc..9832031a3136 100644 --- a/src/kernel/osd_client.c +++ b/src/kernel/osd_client.c @@ -325,6 +325,7 @@ static void init_osd(struct ceph_osd_client *osdc, struct ceph_osd *osd, int o) osd->o_osdc = osdc; osd->o_osd = o; INIT_LIST_HEAD(&osd->o_requests); + osd->o_con = NULL; } static void destroy_osd(struct ceph_osd_client *osdc, struct ceph_osd *osd) @@ -523,7 +524,8 @@ static int __map_osds(struct ceph_osd_client *osdc, __insert_osd(osdc, req->r_osd); } - list_add(&req->r_osd_item, &req->r_osd->o_requests); + if (req->r_osd) + list_add(&req->r_osd_item, &req->r_osd->o_requests); err = 1; /* osd changed */ out: