From: Ilya Dryomov <ilya.dryomov@inktank.com>
Date: Fri, 13 Dec 2013 15:28:57 +0200
Subject: rbd: refactor rbd_init() a bit
Git-commit: e1b4d96dea61c3078775090e8b121f571aab8fda
Patch-mainline: v3.14-rc1
References: FATE#318328 bsc#917884

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>
Acked-by: Lee Duncan <lduncan@suse.com>
---
 drivers/block/rbd.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -5301,18 +5301,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;
 }
 
