diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c index bc282b744f34..ebcca3dd1269 100644 --- a/fs/nfs/callback.c +++ b/fs/nfs/callback.c @@ -60,8 +60,15 @@ static int nfs4_callback_up_net(struct svc_serv *serv, struct net *net) nn->nfs_callback_tcpport6 = ret; dprintk("NFS: Callback listener port = %u (af %u, net %x)\n", nn->nfs_callback_tcpport6, PF_INET6, net->ns.inum); - } else if (ret != -EAFNOSUPPORT) + } else if (ret != -EAFNOSUPPORT) { + struct svc_xprt *xprt = svc_find_xprt(serv, "tcp", net, PF_INET, + nn->nfs_callback_tcpport); + if (xprt) { + svc_xprt_close(xprt); + svc_xprt_put(xprt); + } goto out_err; + } return 0; out_err: