Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[cascardo/linux.git] / fs / nfs / cache_lib.c
index 862a2f1..5f7b053 100644 (file)
@@ -128,10 +128,13 @@ int nfs_cache_register_net(struct net *net, struct cache_detail *cd)
        struct super_block *pipefs_sb;
        int ret = 0;
 
+       sunrpc_init_cache_detail(cd);
        pipefs_sb = rpc_get_sb_net(net);
        if (pipefs_sb) {
                ret = nfs_cache_register_sb(pipefs_sb, cd);
                rpc_put_sb_net(net);
+               if (ret)
+                       sunrpc_destroy_cache_detail(cd);
        }
        return ret;
 }
@@ -151,14 +154,5 @@ void nfs_cache_unregister_net(struct net *net, struct cache_detail *cd)
                nfs_cache_unregister_sb(pipefs_sb, cd);
                rpc_put_sb_net(net);
        }
-}
-
-void nfs_cache_init(struct cache_detail *cd)
-{
-       sunrpc_init_cache_detail(cd);
-}
-
-void nfs_cache_destroy(struct cache_detail *cd)
-{
        sunrpc_destroy_cache_detail(cd);
 }