Commit 53e4e175 authored by NeilBrown's avatar NeilBrown Committed by Chuck Lever
Browse files

nfsd: nfsd_destroy_serv() must call svc_destroy() even if nfsd_startup_net() failed



If nfsd_startup_net() fails and so ->nfsd_net_up is false,
nfsd_destroy_serv() doesn't currently call svc_destroy().  It should.

Fixes: 1e3577a4 ("SUNRPC: discard sv_refcnt, and svc_get/svc_put")
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent dc0d0f88
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -385,6 +385,9 @@ static void nfsd_shutdown_net(struct net *net)
{
	struct nfsd_net *nn = net_generic(net, nfsd_net_id);

	if (!nn->nfsd_net_up)
		return;
	nfsd_export_flush(net);
	nfs4_state_shutdown_net(net);
	nfsd_reply_cache_shutdown(nn);
	nfsd_file_cache_shutdown_net(net);
@@ -492,11 +495,8 @@ void nfsd_destroy_serv(struct net *net)
	 * other initialization has been done except the rpcb information.
	 */
	svc_rpcb_cleanup(serv, net);
	if (!nn->nfsd_net_up)
		return;

	nfsd_shutdown_net(net);
	nfsd_export_flush(net);
	svc_destroy(&serv);
}