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) |
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, | |||
1800 | out: | 1800 | out: |
1801 | /* Hold a session reference until done processing the compound. */ | 1801 | /* Hold a session reference until done processing the compound. */ |
1802 | if (cstate->session) { | 1802 | if (cstate->session) { |
1803 | struct nfs4_client *clp = session->se_client; | ||
1804 | |||
1803 | nfsd4_get_session(cstate->session); | 1805 | nfsd4_get_session(cstate->session); |
1804 | atomic_inc(&session->se_client->cl_refcount); | 1806 | atomic_inc(&clp->cl_refcount); |
1807 | if (clp->cl_cb_state == NFSD4_CB_DOWN) | ||
1808 | seq->status_flags |= SEQ4_STATUS_CB_PATH_DOWN; | ||
1805 | } | 1809 | } |
1806 | kfree(conn); | 1810 | kfree(conn); |
1807 | spin_unlock(&client_lock); | 1811 | spin_unlock(&client_lock); |