orangefs: put register_chrdev immediately before register_filesystem
[deliverable/linux.git] / fs / orangefs / orangefs-mod.c
index 76a1b9765e2334d12ba1e47d977f84e6c3bdf263..6f072a8c0de1732f6c7823fd5b37f81f64156bc4 100644 (file)
@@ -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();
 
This page took 0.02623 seconds and 5 git commands to generate.