diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index 54ffadf02e034f52cabc4b6baa26e7b05b66154c..9c18366a0d2846e6c45dbc8476ca3f05178d87b0 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c @@ -1409,8 +1409,11 @@ nfsd4_run_cb_work(struct work_struct *work) nfsd4_process_cb_update(cb); clnt = clp->cl_cb_client; - if (!clnt) { - /* Callback channel broken, or client killed; give up: */ + if (!clnt || clp->cl_state == NFSD4_COURTESY) { + /* + * Callback channel broken, client killed or + * nfs4_client in courtesy state; give up. + */ nfsd41_destroy_cb(cb); return; }