diff options
author | J. Bruce Fields <bfields@citi.umich.edu> | 2010-02-22 02:41:19 +0100 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2010-04-02 22:36:30 +0200 |
commit | 147efd0dd702ce2f1ab44449bd70369405ef68fd (patch) | |
tree | 8d50a3d1bc78fffb9189a1ba3927f53c2ee8bb8a /fs/nfsd | |
parent | nfsd4: preallocate nfs4_rpc_args (diff) | |
download | linux-147efd0dd702ce2f1ab44449bd70369405ef68fd.tar.xz linux-147efd0dd702ce2f1ab44449bd70369405ef68fd.zip |
nfsd4: shutdown callbacks on expiry
Once we've expired the client, there's no further purpose to the
callbacks; go ahead and shut down the callback client rather than
waiting for the last reference to go.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/nfs4state.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index efef7f2442d5..9ce58318ca8c 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -697,9 +697,6 @@ shutdown_callback_client(struct nfs4_client *clp) static inline void free_client(struct nfs4_client *clp) { - shutdown_callback_client(clp); - if (clp->cl_cb_xprt) - svc_xprt_put(clp->cl_cb_xprt); if (clp->cl_cred.cr_group_info) put_group_info(clp->cl_cred.cr_group_info); kfree(clp->cl_principal); @@ -752,6 +749,9 @@ expire_client(struct nfs4_client *clp) se_perclnt); release_session(ses); } + shutdown_callback_client(clp); + if (clp->cl_cb_xprt) + svc_xprt_put(clp->cl_cb_xprt); put_nfs4_client(clp); } |