rbd: refactor rbd_init() a bit
Refactor rbd_init() a bit to make it more clear what's going on.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index d743900..8b78a08 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -5292,18 +5292,22 @@
if (!libceph_compatible(NULL)) {
rbd_warn(NULL, "libceph incompatibility (quitting)");
-
return -EINVAL;
}
+
rc = rbd_slab_init();
if (rc)
return rc;
+
rc = rbd_sysfs_init();
if (rc)
- rbd_slab_exit();
- else
- pr_info("loaded\n");
+ goto err_out_slab;
+ pr_info("loaded\n");
+ return 0;
+
+err_out_slab:
+ rbd_slab_exit();
return rc;
}