diff options
author | J. Bruce Fields <bfields@redhat.com> | 2010-11-18 08:30:33 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2011-01-11 15:04:10 -0500 |
commit | 0d7bb71907546b2baf15d78edd3e508e12963dbf (patch) | |
tree | 4ccdc54a5c95701455d0060f9b7106253e35af59 /fs/nfsd/nfs4state.c | |
parent | 77a3569d6c4e14e89fa628df383b6dccc0cce6be (diff) | |
download | blackbird-op-linux-0d7bb71907546b2baf15d78edd3e508e12963dbf.tar.gz blackbird-op-linux-0d7bb71907546b2baf15d78edd3e508e12963dbf.zip |
nfsd4: set sequence flag when backchannel is down
Implement the SEQ4_STATUS_CB_PATH_DOWN flag.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4state.c')
-rw-r--r-- | fs/nfsd/nfs4state.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 919ad25660d6..15bd1cc77de7 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1800,8 +1800,12 @@ nfsd4_sequence(struct svc_rqst *rqstp, out: /* Hold a session reference until done processing the compound. */ if (cstate->session) { + struct nfs4_client *clp = session->se_client; + nfsd4_get_session(cstate->session); - atomic_inc(&session->se_client->cl_refcount); + atomic_inc(&clp->cl_refcount); + if (clp->cl_cb_state == NFSD4_CB_DOWN) + seq->status_flags |= SEQ4_STATUS_CB_PATH_DOWN; } kfree(conn); spin_unlock(&client_lock); |