Patch "nfsd/callback: Cleanup callback cred on shutdown" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
nfsd/callback: Cleanup callback cred on shutdown
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
nfsd-callback-cleanup-callback-cred-on-shutdown.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Oct 19 15:04:02 CEST 2017
From: Kinglong Mee <[email protected]>
Date: Sun, 5 Feb 2017 09:57:07 +0800
Subject: nfsd/callback: Cleanup callback cred on shutdown
From: Kinglong Mee <[email protected]>
[ Upstream commit f7d1ddbe7648af7460d23688c8c131342eb43b3a ]
The rpccred gotten from rpc_lookup_machine_cred() should be put when state is shutdown.
--- fs/nfsd/nfs4callback.c | 8 ++++++++ fs/nfsd/nfs4state.c | 10 ++++++---- fs/nfsd/state.h | 1 + 3 files changed, 15 insertions(+), 4 deletions(-)
fs/nfsd/nfs4callback.c +8 -0
@@ -753,6 +753,14 @@ int set_callback_cred(void)return 0 ; } +void cleanup_callback_cred (void ) +{ +if (callback_cred) { +put_rpccred (callback_cred); + callback_cred =NULL ; + } +} +static struct rpc_cred *get_backchannel_cred (struct nfs4_client *clp,struct rpc_clnt *client,struct nfsd4_session *ses) {if (clp->cl_minorversion ==0 ) {
fs/nfsd/nfs4state.c +6 -4
@@ -7012,23 +7012,24 @@ nfs4_state_start(void) ret =set_callback_cred ();if (ret) -return -ENOMEM ; +return ret; + laundry_wq =alloc_workqueue ("%s" ,WQ_UNBOUND ,0 ,"nfsd4" );if (laundry_wq ==NULL ) { ret = -ENOMEM ; - goto out_recovery; + goto out_cleanup_cred; } ret =nfsd4_create_callback_queue ();if (ret) goto out_free_laundry;set_max_delegations (); -return 0 ; out_free_laundry:destroy_workqueue (laundry_wq); -out_recovery: +out_cleanup_cred: +cleanup_callback_cred ();return ret; }
@@ -7086,6 +7087,7 @@ nfs4_state_shutdown(void) {destroy_workqueue (laundry_wq);nfsd4_destroy_callback_queue (); +cleanup_callback_cred (); } static void
fs/nfsd/state.h +1 -0
@@ -615,6 +615,7 @@ extern struct nfs4_client_reclaim *nfsd4extern __be32 nfs4_check_open_reclaim (clientid_t *clid,struct nfsd4_compound_state *cstate,struct nfsd_net *nn);extern int set_callback_cred (void ); +extern void cleanup_callback_cred (void );extern void nfsd4_probe_callback (struct nfs4_client *clp);extern void nfsd4_probe_callback_sync (struct nfs4_client *clp);extern void nfsd4_change_callback (struct nfs4_client *clp,struct nfs4_cb_conn *);
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/nfsd-callback-cleanup-callback-cred-on-shutdown.patch