forked from Minki/linux
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;
|
||||
obj_request->obj_request = NULL;
|
||||
rbd_obj_request_put(orig_request);
|
||||
rbd_assert(orig_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) {
|
||||
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)
|
||||
@ -2585,7 +2585,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)
|
||||
|
Loading…
Reference in New Issue
Block a user