If a client indicates via CREATE_SESSION that no back channel should be used on the existing connection, mark the client's cl_cb_state DOWN instead of leaving it UNKNOWN. Otherwise, a fresh session is created without an operational backchannel, but the server never asserts SEQ4_STATUS_CB_PATH_DOWN. Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx> --- fs/nfsd/nfs4state.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index a45f244..d7cfd8b 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1429,6 +1429,9 @@ static void init_session(struct svc_rqst *rqstp, struct nfsd4_session *new, stru list_add(&new->se_perclnt, &clp->cl_sessions); spin_unlock(&clp->cl_lock); + if (!(cses->flags & SESSION4_BACK_CHAN)) + clp->cl_cb_state = NFSD4_CB_DOWN; + { struct sockaddr *sa = svc_addr(rqstp); /* -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html