Skip to content

Commit 8b679ec

Browse files
committed
rbd: move rbd_dev_destroy() call out of rbd_dev_image_release()
... to simplify error handling in do_rbd_add(). Signed-off-by: Ilya Dryomov <[email protected]> Reviewed-by: Jason Dillaman <[email protected]>
1 parent 26544c6 commit 8b679ec

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

drivers/block/rbd.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5967,8 +5967,6 @@ static void rbd_dev_image_release(struct rbd_device *rbd_dev)
59675967
rbd_dev->image_format = 0;
59685968
kfree(rbd_dev->spec->image_id);
59695969
rbd_dev->spec->image_id = NULL;
5970-
5971-
rbd_dev_destroy(rbd_dev);
59725970
}
59735971

59745972
/*
@@ -6135,15 +6133,16 @@ static ssize_t do_rbd_add(struct bus_type *bus,
61356133
* commit 1f3ef78861ac.
61366134
*/
61376135
rbd_unregister_watch(rbd_dev);
6138-
rbd_dev_image_release(rbd_dev);
6139-
goto out;
6136+
goto err_out_image_probe;
61406137
}
61416138

61426139
rc = count;
61436140
out:
61446141
module_put(THIS_MODULE);
61456142
return rc;
61466143

6144+
err_out_image_probe:
6145+
rbd_dev_image_release(rbd_dev);
61476146
err_out_rbd_dev:
61486147
rbd_dev_destroy(rbd_dev);
61496148
err_out_client:
@@ -6203,6 +6202,7 @@ static void rbd_dev_remove_parent(struct rbd_device *rbd_dev)
62036202
}
62046203
rbd_assert(second);
62056204
rbd_dev_image_release(second);
6205+
rbd_dev_destroy(second);
62066206
first->parent = NULL;
62076207
first->parent_overlap = 0;
62086208

@@ -6285,7 +6285,7 @@ static ssize_t do_rbd_remove(struct bus_type *bus,
62856285
*/
62866286
rbd_dev_device_release(rbd_dev);
62876287
rbd_dev_image_release(rbd_dev);
6288-
6288+
rbd_dev_destroy(rbd_dev);
62896289
return count;
62906290
}
62916291

0 commit comments

Comments
 (0)