diff options
| -rw-r--r-- | fs/nfs/cache_lib.c | 12 | ||||
| -rw-r--r-- | fs/nfs/cache_lib.h | 2 | ||||
| -rw-r--r-- | fs/nfs/dns_resolve.c | 6 | 
3 files changed, 4 insertions, 16 deletions
diff --git a/fs/nfs/cache_lib.c b/fs/nfs/cache_lib.c index 862a2f16db6..5f7b053720e 100644 --- a/fs/nfs/cache_lib.c +++ b/fs/nfs/cache_lib.c @@ -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);  } diff --git a/fs/nfs/cache_lib.h b/fs/nfs/cache_lib.h index 317db95e37f..4116d2c3f52 100644 --- a/fs/nfs/cache_lib.h +++ b/fs/nfs/cache_lib.h @@ -23,8 +23,6 @@ extern struct nfs_cache_defer_req *nfs_cache_defer_req_alloc(void);  extern void nfs_cache_defer_req_put(struct nfs_cache_defer_req *dreq);  extern int nfs_cache_wait_for_upcall(struct nfs_cache_defer_req *dreq); -extern void nfs_cache_init(struct cache_detail *cd); -extern void nfs_cache_destroy(struct cache_detail *cd);  extern int nfs_cache_register_net(struct net *net, struct cache_detail *cd);  extern void nfs_cache_unregister_net(struct net *net, struct cache_detail *cd);  extern int nfs_cache_register_sb(struct super_block *sb, diff --git a/fs/nfs/dns_resolve.c b/fs/nfs/dns_resolve.c index d5ce5f4f0f5..9cbc98a4159 100644 --- a/fs/nfs/dns_resolve.c +++ b/fs/nfs/dns_resolve.c @@ -377,14 +377,12 @@ int nfs_dns_resolver_cache_init(struct net *net)  	if (IS_ERR(nn->nfs_dns_resolve))  		return PTR_ERR(nn->nfs_dns_resolve); -	nfs_cache_init(nn->nfs_dns_resolve);  	err = nfs_cache_register_net(net, nn->nfs_dns_resolve);  	if (err)  		goto err_reg;  	return 0;  err_reg: -	nfs_cache_destroy(nn->nfs_dns_resolve);  	cache_destroy_net(nn->nfs_dns_resolve, net);  	return err;  } @@ -392,10 +390,8 @@ err_reg:  void nfs_dns_resolver_cache_destroy(struct net *net)  {  	struct nfs_net *nn = net_generic(net, nfs_net_id); -	struct cache_detail *cd = nn->nfs_dns_resolve; -	nfs_cache_unregister_net(net, cd); -	nfs_cache_destroy(cd); +	nfs_cache_unregister_net(net, nn->nfs_dns_resolve);  	cache_destroy_net(nn->nfs_dns_resolve, net);  }  |