|
@@ -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);
|
|
|
}
|
|
|
|