diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-12-11 15:16:26 +0100 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-12-11 15:16:26 +0100 |
commit | 7ce0171d4f78992184faed87ea897d730b972965 (patch) | |
tree | 71dba7444672eb10244566e6f0ed7829f1e3abf5 /net | |
parent | NFSv4.1: Try to eliminate outliers when updating target_highest_slotid (diff) | |
parent | nfs: don't extend writes to cover entire page if pagecache is invalid (diff) | |
download | linux-7ce0171d4f78992184faed87ea897d730b972965.tar.xz linux-7ce0171d4f78992184faed87ea897d730b972965.zip |
Merge branch 'bugfixes' into nfs-for-next
Diffstat (limited to 'net')
-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 3128a1503d8e..fd10981ea792 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); } |