rbd: drop original request earlier for existence check
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> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
This commit is contained in:
parent
4d1bf79aff
commit
912c317d46
@ -2535,6 +2535,7 @@ static void rbd_img_obj_exists_callback(struct rbd_obj_request *obj_request)
|
|||||||
*/
|
*/
|
||||||
orig_request = obj_request->obj_request;
|
orig_request = obj_request->obj_request;
|
||||||
obj_request->obj_request = NULL;
|
obj_request->obj_request = NULL;
|
||||||
|
rbd_obj_request_put(orig_request);
|
||||||
rbd_assert(orig_request);
|
rbd_assert(orig_request);
|
||||||
rbd_assert(orig_request->img_request);
|
rbd_assert(orig_request->img_request);
|
||||||
|
|
||||||
@ -2555,7 +2556,6 @@ static void rbd_img_obj_exists_callback(struct rbd_obj_request *obj_request)
|
|||||||
if (!rbd_dev->parent_overlap) {
|
if (!rbd_dev->parent_overlap) {
|
||||||
struct ceph_osd_client *osdc;
|
struct ceph_osd_client *osdc;
|
||||||
|
|
||||||
rbd_obj_request_put(orig_request);
|
|
||||||
osdc = &rbd_dev->rbd_client->client->osdc;
|
osdc = &rbd_dev->rbd_client->client->osdc;
|
||||||
result = rbd_obj_request_submit(osdc, orig_request);
|
result = rbd_obj_request_submit(osdc, orig_request);
|
||||||
if (!result)
|
if (!result)
|
||||||
@ -2585,7 +2585,6 @@ static void rbd_img_obj_exists_callback(struct rbd_obj_request *obj_request)
|
|||||||
out:
|
out:
|
||||||
if (orig_request->result)
|
if (orig_request->result)
|
||||||
rbd_obj_request_complete(orig_request);
|
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)
|
static int rbd_img_obj_exists_submit(struct rbd_obj_request *obj_request)
|
||||||
|
Loading…
Reference in New Issue
Block a user