@@ -89,7 +89,6 @@ struct gss_auth {
enum rpc_gss_svc service;
struct rpc_clnt *client;
struct net *net;
- netns_tracker ns_tracker;
/*
* There are two upcall pipes; dentry[1], named "gssd", is used
* for the new text-based upcall; dentry[0] is named after the
@@ -1045,12 +1044,11 @@ gss_create_new(const struct rpc_auth_create_args *args, struct rpc_clnt *clnt)
goto err_free;
}
gss_auth->client = clnt;
- gss_auth->net = get_net_track(rpc_net_ns(clnt), &gss_auth->ns_tracker,
- GFP_KERNEL);
+ gss_auth->net = rpc_net_ns(clnt);
err = -EINVAL;
gss_auth->mech = gss_mech_get_by_pseudoflavor(flavor);
if (!gss_auth->mech)
- goto err_put_net;
+ goto err_free;
gss_auth->service = gss_pseudoflavor_to_service(gss_auth->mech, flavor);
if (gss_auth->service == 0)
goto err_put_mech;
@@ -1101,8 +1099,6 @@ gss_create_new(const struct rpc_auth_create_args *args, struct rpc_clnt *clnt)
rpcauth_destroy_credcache(auth);
err_put_mech:
gss_mech_put(gss_auth->mech);
-err_put_net:
- put_net_track(gss_auth->net, &gss_auth->ns_tracker);
err_free:
kfree(gss_auth->target_name);
kfree(gss_auth);
@@ -1118,7 +1114,6 @@ gss_free(struct gss_auth *gss_auth)
gss_pipe_free(gss_auth->gss_pipe[0]);
gss_pipe_free(gss_auth->gss_pipe[1]);
gss_mech_put(gss_auth->mech);
- put_net_track(gss_auth->net, &gss_auth->ns_tracker);
kfree(gss_auth->target_name);
kfree(gss_auth);
It's not clear to me that these net references were ever needed. They were added in commit e726340ac9cf ("RPCSEC_GSS: Further cleanups"), but there no is explanation for taking it in the patch description and it's not clear what race this prevents. Now that the gssproxy client is shut down in pre_exit, there should be no need to keep a reference here. Signed-off-by: Jeff Layton <jlayton@kernel.org> --- net/sunrpc/auth_gss/auth_gss.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)