Skip to content

Commit

Permalink
NFSv4.1: Handle SEQ4_STATUS_BACKCHANNEL_FAULT correctly
Browse files Browse the repository at this point in the history
RFC5661 states:

      The server has encountered an unrecoverable fault with the
      backchannel (e.g., it has lost track of the sequence ID for a slot
      in the backchannel).  The client MUST stop sending more requests
      on the session's fore channel, wait for all outstanding requests
      to complete on the fore and back channel, and then destroy the
      session.

Ensure we do so...

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
  • Loading branch information
Trond Myklebust committed Jul 5, 2015
1 parent 4099287 commit b135290
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions fs/nfs/nfs4state.c
Original file line number Diff line number Diff line change
Expand Up @@ -2217,9 +2217,9 @@ static void nfs41_handle_recallable_state_revoked(struct nfs_client *clp)

static void nfs41_handle_backchannel_fault(struct nfs_client *clp)
{
nfs_expire_all_delegations(clp);
if (test_and_set_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state) == 0)
nfs4_schedule_state_manager(clp);
set_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state);
nfs4_schedule_state_manager(clp);

dprintk("%s: server %s declared a backchannel fault\n", __func__,
clp->cl_hostname);
}
Expand Down

0 comments on commit b135290

Please sign in to comment.