瀏覽代碼

orangefs: put register_chrdev immediately before register_filesystem

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Martin Brandenburg 9 年之前
父節點
當前提交
2f83ace371
共有 1 個文件被更改,包括 13 次插入13 次删除
  1. 13 13
      fs/orangefs/orangefs-mod.c

+ 13 - 13
fs/orangefs/orangefs-mod.c

@@ -144,21 +144,12 @@ static int __init orangefs_init(void)
 	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 @@ static int __init orangefs_init(void)
 	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 @@ static int __init orangefs_init(void)
 
 	orangefs_sysfs_exit();
 
+cleanup_device:
+	orangefs_dev_cleanup();
+
 sysfs_init_failed:
 
 kernel_debug_init_failed:
@@ -220,9 +223,6 @@ cleanup_key_table:
 cleanup_progress_table:
 	kfree(htable_ops_in_progress);
 
-cleanup_device:
-	orangefs_dev_cleanup();
-
 cleanup_inode:
 	orangefs_inode_cache_finalize();