diff options
Diffstat (limited to 'fs/nfs/cache_lib.c')
| -rw-r--r-- | fs/nfs/cache_lib.c | 12 | 
1 files changed, 3 insertions, 9 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);  }  |