Message ID | 519195DC.1060609@inktank.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 05/13/2013 08:39 PM, Alex Elder wrote: > The reference to the original request dropped at the end of > rbd_img_obj_exists_callback() corresponds to the reference taken > in rbd_img_obj_exists_submit() to account for the stat request > referring to it. Move the put of that reference up right after > clearing that pointer to make its purpose more obvious. This patch and the one I just posted are available in the "review/wip-postflatten" branch of the ceph-client git repository. -Alex > Signed-off-by: Alex Elder <elder@inktank.com> > --- > drivers/block/rbd.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c > index 632dd35..b2f5c96 100644 > --- a/drivers/block/rbd.c > +++ b/drivers/block/rbd.c > @@ -2528,6 +2528,7 @@ static void rbd_img_obj_exists_callback(struct > rbd_obj_request *obj_request) > */ > orig_request = obj_request->obj_request; > obj_request->obj_request = NULL; > + rbd_obj_request_put(orig_request); > rbd_assert(orig_request); > rbd_assert(orig_request->img_request); > > @@ -2548,7 +2549,6 @@ static void rbd_img_obj_exists_callback(struct > rbd_obj_request *obj_request) > if (!rbd_dev->parent_overlap) { > struct ceph_osd_client *osdc; > > - rbd_obj_request_put(orig_request); > osdc = &rbd_dev->rbd_client->client->osdc; > result = rbd_obj_request_submit(osdc, orig_request); > if (!result) > @@ -2578,7 +2578,6 @@ static void rbd_img_obj_exists_callback(struct > rbd_obj_request *obj_request) > out: > if (orig_request->result) > rbd_obj_request_complete(orig_request); > - rbd_obj_request_put(orig_request); > } > > static int rbd_img_obj_exists_submit(struct rbd_obj_request *obj_request) > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 632dd35..b2f5c96 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -2528,6 +2528,7 @@ static void rbd_img_obj_exists_callback(struct rbd_obj_request *obj_request) */ orig_request = obj_request->obj_request; obj_request->obj_request = NULL; + rbd_obj_request_put(orig_request); rbd_assert(orig_request); rbd_assert(orig_request->img_request);
The reference to the original request dropped at the end of rbd_img_obj_exists_callback() corresponds to the reference taken in rbd_img_obj_exists_submit() to account for the stat request referring to it. Move the put of that reference up right after clearing that pointer to make its purpose more obvious. Signed-off-by: Alex Elder <elder@inktank.com> --- drivers/block/rbd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) @@ -2548,7 +2549,6 @@ static void rbd_img_obj_exists_callback(struct rbd_obj_request *obj_request) if (!rbd_dev->parent_overlap) { struct ceph_osd_client *osdc; - rbd_obj_request_put(orig_request); osdc = &rbd_dev->rbd_client->client->osdc; result = rbd_obj_request_submit(osdc, orig_request); if (!result) @@ -2578,7 +2578,6 @@ static void rbd_img_obj_exists_callback(struct rbd_obj_request *obj_request) out: if (orig_request->result) rbd_obj_request_complete(orig_request); - rbd_obj_request_put(orig_request); } static int rbd_img_obj_exists_submit(struct rbd_obj_request *obj_request)