9p: make register_filesystem() the last failure exit
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 17 Mar 2012 06:37:05 +0000 (02:37 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 21 Mar 2012 01:29:45 +0000 (21:29 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/9p/v9fs.c

index 1964f98e74bedf861d12950dda7f9382ec3f8093..b85efa77394989bf8dafabb3eb01e5dfa2c64d7d 100644 (file)
@@ -594,21 +594,21 @@ static int __init init_v9fs(void)
        int err;
        pr_info("Installing v9fs 9p2000 file system support\n");
        /* TODO: Setup list of registered trasnport modules */
-       err = register_filesystem(&v9fs_fs_type);
-       if (err < 0) {
-               pr_err("Failed to register filesystem\n");
-               return err;
-       }
 
        err = v9fs_cache_register();
        if (err < 0) {
                pr_err("Failed to register v9fs for caching\n");
-               goto out_fs_unreg;
+               return err;
        }
 
        err = v9fs_sysfs_init();
        if (err < 0) {
                pr_err("Failed to register with sysfs\n");
+               goto out_cache;
+       }
+       err = register_filesystem(&v9fs_fs_type);
+       if (err < 0) {
+               pr_err("Failed to register filesystem\n");
                goto out_sysfs_cleanup;
        }
 
@@ -617,8 +617,8 @@ static int __init init_v9fs(void)
 out_sysfs_cleanup:
        v9fs_sysfs_cleanup();
 
-out_fs_unreg:
-       unregister_filesystem(&v9fs_fs_type);
+out_cache:
+       v9fs_cache_unregister();
 
        return err;
 }