diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-12-11 09:16:26 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-12-11 09:16:26 -0500 |
commit | 7ce0171d4f78992184faed87ea897d730b972965 (patch) | |
tree | 71dba7444672eb10244566e6f0ed7829f1e3abf5 /net/sunrpc/rpc_pipe.c | |
parent | 1fa8064429d0acbf5bbf3c8a53f65679fdacc75e (diff) | |
parent | 81d9bce5309288086b58b4d97a644e495fef75f2 (diff) | |
download | op-kernel-dev-7ce0171d4f78992184faed87ea897d730b972965.zip op-kernel-dev-7ce0171d4f78992184faed87ea897d730b972965.tar.gz |
Merge branch 'bugfixes' into nfs-for-next
Diffstat (limited to 'net/sunrpc/rpc_pipe.c')
-rw-r--r-- | net/sunrpc/rpc_pipe.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 3128a15..fd10981 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c @@ -1152,14 +1152,19 @@ static void rpc_kill_sb(struct super_block *sb) struct sunrpc_net *sn = net_generic(net, sunrpc_net_id); mutex_lock(&sn->pipefs_sb_lock); + if (sn->pipefs_sb != sb) { + mutex_unlock(&sn->pipefs_sb_lock); + goto out; + } sn->pipefs_sb = NULL; mutex_unlock(&sn->pipefs_sb_lock); - put_net(net); dprintk("RPC: sending pipefs UMOUNT notification for net %p%s\n", net, NET_NAME(net)); blocking_notifier_call_chain(&rpc_pipefs_notifier_list, RPC_PIPEFS_UMOUNT, sb); + put_net(net); +out: kill_litter_super(sb); } |