orangefs: put register_chrdev immediately before register_filesystem

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
diff --git a/fs/orangefs/orangefs-mod.c b/fs/orangefs/orangefs-mod.c
index 76a1b97..6f072a8 100644
--- a/fs/orangefs/orangefs-mod.c
+++ b/fs/orangefs/orangefs-mod.c
@@ -144,21 +144,12 @@
 	if (ret < 0)
 		goto cleanup_op;
 
-	/* Initialize the orangefsdev subsystem. */
-	ret = orangefs_dev_init();
-	if (ret < 0) {
-		gossip_err("%s: could not initialize device subsystem %d!\n",
-			   __func__,
-			   ret);
-		goto cleanup_inode;
-	}
-
 	htable_ops_in_progress =
 	    kcalloc(hash_table_size, sizeof(struct list_head), GFP_KERNEL);
 	if (!htable_ops_in_progress) {
 		gossip_err("Failed to initialize op hashtable");
 		ret = -ENOMEM;
-		goto cleanup_device;
+		goto cleanup_inode;
 	}
 
 	/* initialize a doubly linked at each hash table index */
@@ -198,6 +189,15 @@
 	if (ret)
 		goto sysfs_init_failed;
 
+	/* Initialize the orangefsdev subsystem. */
+	ret = orangefs_dev_init();
+	if (ret < 0) {
+		gossip_err("%s: could not initialize device subsystem %d!\n",
+			   __func__,
+			   ret);
+		goto cleanup_device;
+	}
+
 	ret = register_filesystem(&orangefs_fs_type);
 	if (ret == 0) {
 		pr_info("orangefs: module version %s loaded\n", ORANGEFS_VERSION);
@@ -207,6 +207,9 @@
 
 	orangefs_sysfs_exit();
 
+cleanup_device:
+	orangefs_dev_cleanup();
+
 sysfs_init_failed:
 
 kernel_debug_init_failed:
@@ -220,9 +223,6 @@
 cleanup_progress_table:
 	kfree(htable_ops_in_progress);
 
-cleanup_device:
-	orangefs_dev_cleanup();
-
 cleanup_inode:
 	orangefs_inode_cache_finalize();