From: J. Bruce Fields Date: Mon, 22 Feb 2010 01:41:19 +0000 (-0800) Subject: nfsd4: shutdown callbacks on expiry X-Git-Tag: v2.6.35-rc1~489^2~31 X-Git-Url: http://bbs.cooldavid.org/git/?a=commitdiff_plain;ds=sidebyside;h=147efd0dd702ce2f1ab44449bd70369405ef68fd;p=net-next-2.6.git 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 --- diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index efef7f2442d..9ce58318ca8 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); }