rbd: refactor rbd_init() a bit
authorIlya Dryomov <ilya.dryomov@inktank.com>
Fri, 13 Dec 2013 13:28:57 +0000 (15:28 +0200)
committerIlya Dryomov <ilya.dryomov@inktank.com>
Tue, 31 Dec 2013 18:31:55 +0000 (20:31 +0200)
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>
drivers/block/rbd.c

index d743900ca7805f55ba86af8aa030bc64a4d23c0c..8b78a08483a6862d9be5decb508224365caa6c32 100644 (file)
@@ -5292,18 +5292,22 @@ static int __init rbd_init(void)
 
        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;
 }