aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/block/rbd.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index b4f00e22743d..291802c52c65 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -2535,6 +2535,7 @@ static void rbd_img_obj_exists_callback(struct rbd_obj_request *obj_request)
2535 */ 2535 */
2536 orig_request = obj_request->obj_request; 2536 orig_request = obj_request->obj_request;
2537 obj_request->obj_request = NULL; 2537 obj_request->obj_request = NULL;
2538 rbd_obj_request_put(orig_request);
2538 rbd_assert(orig_request); 2539 rbd_assert(orig_request);
2539 rbd_assert(orig_request->img_request); 2540 rbd_assert(orig_request->img_request);
2540 2541
@@ -2555,7 +2556,6 @@ static void rbd_img_obj_exists_callback(struct rbd_obj_request *obj_request)
2555 if (!rbd_dev->parent_overlap) { 2556 if (!rbd_dev->parent_overlap) {
2556 struct ceph_osd_client *osdc; 2557 struct ceph_osd_client *osdc;
2557 2558
2558 rbd_obj_request_put(orig_request);
2559 osdc = &rbd_dev->rbd_client->client->osdc; 2559 osdc = &rbd_dev->rbd_client->client->osdc;
2560 result = rbd_obj_request_submit(osdc, orig_request); 2560 result = rbd_obj_request_submit(osdc, orig_request);
2561 if (!result) 2561 if (!result)
@@ -2585,7 +2585,6 @@ static void rbd_img_obj_exists_callback(struct rbd_obj_request *obj_request)
2585out: 2585out:
2586 if (orig_request->result) 2586 if (orig_request->result)
2587 rbd_obj_request_complete(orig_request); 2587 rbd_obj_request_complete(orig_request);
2588 rbd_obj_request_put(orig_request);
2589} 2588}
2590 2589
2591static int rbd_img_obj_exists_submit(struct rbd_obj_request *obj_request) 2590static int rbd_img_obj_exists_submit(struct rbd_obj_request *obj_request)