Commit e5296637 authored by Jeff Layton's avatar Jeff Layton Committed by Anna Schumaker
Browse files

nfs: add a refcount tracker for struct net as held by the nfs_client



These are long-held references to the netns, so make sure the refcount
tracker is aware of them.

Signed-off-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarAnna Schumaker <anna.schumaker@oracle.com>
parent fadc0f3b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -180,7 +180,7 @@ struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_init)
	clp->cl_proto = cl_init->proto;
	clp->cl_nconnect = cl_init->nconnect;
	clp->cl_max_connect = cl_init->max_connect ? cl_init->max_connect : 1;
	clp->cl_net = get_net(cl_init->net);
	clp->cl_net = get_net_track(cl_init->net, &clp->cl_ns_tracker, GFP_KERNEL);

#if IS_ENABLED(CONFIG_NFS_LOCALIO)
	seqlock_init(&clp->cl_boot_lock);
@@ -250,7 +250,7 @@ void nfs_free_client(struct nfs_client *clp)
	if (!IS_ERR(clp->cl_rpcclient))
		rpc_shutdown_client(clp->cl_rpcclient);

	put_net(clp->cl_net);
	put_net_track(clp->cl_net, &clp->cl_ns_tracker);
	put_nfs_version(clp->cl_nfs_mod);
	kfree(clp->cl_hostname);
	kfree(clp->cl_acceptor);
+1 −0
Original line number Diff line number Diff line
@@ -125,6 +125,7 @@ struct nfs_client {
	 */
	char			cl_ipaddr[48];
	struct net		*cl_net;
	netns_tracker		cl_ns_tracker;
	struct list_head	pending_cb_stateids;
	struct rcu_head		rcu;