NFS: remove RPC PipeFS mount point references from NFS cache routines
authorStanislav Kinsbursky <skinsbursky@parallels.com>
Fri, 25 Nov 2011 14:13:20 +0000 (17:13 +0300)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 31 Jan 2012 23:20:26 +0000 (18:20 -0500)
This is a cleanup patch. We don't need this reference anymore, because DNS
resolver cache now creates it's dentries in per-net operations and on PipeFS
mount/umount notification.
Note that nfs_cache_register_net() now returns 0 instead of -ENOENT in case of
PiepFS superblock absence. This is ok, Dns resolver cache will be regestered on
PipeFS mount event.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/cache_lib.c

index 5905a31211e50e2fec6d5f2e1caed05c678d4a47..dded2636811182497c5c78d24f51e81577d7aad5 100644 (file)
@@ -126,24 +126,14 @@ int nfs_cache_register_sb(struct super_block *sb, struct cache_detail *cd)
 
 int nfs_cache_register_net(struct net *net, struct cache_detail *cd)
 {
-       struct vfsmount *mnt;
        struct super_block *pipefs_sb;
-       int ret;
+       int ret = 0;
 
-       mnt = rpc_get_mount();
-       if (IS_ERR(mnt))
-               return PTR_ERR(mnt);
        pipefs_sb = rpc_get_sb_net(net);
-       if (!pipefs_sb) {
-               ret = -ENOENT;
-               goto err;
+       if (pipefs_sb) {
+               ret = nfs_cache_register_sb(pipefs_sb, cd);
+               rpc_put_sb_net(net);
        }
-       ret = nfs_cache_register_sb(pipefs_sb, cd);
-       rpc_put_sb_net(net);
-       if (!ret)
-               return ret;
-err:
-       rpc_put_mount();
        return ret;
 }
 
@@ -162,7 +152,6 @@ void nfs_cache_unregister_net(struct net *net, struct cache_detail *cd)
                nfs_cache_unregister_sb(pipefs_sb, cd);
                rpc_put_sb_net(net);
        }
-       rpc_put_mount();
 }
 
 void nfs_cache_init(struct cache_detail *cd)