diff options
-rw-r--r-- | drivers/block/rbd.c | 3 |
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) | |||
2585 | out: | 2585 | out: |
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 | ||
2591 | static int rbd_img_obj_exists_submit(struct rbd_obj_request *obj_request) | 2590 | static int rbd_img_obj_exists_submit(struct rbd_obj_request *obj_request) |