Re: [PATCH 2/3] nfs41: Handle session errors during delegation return

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/5/09 12:38 PM, "Trond Myklebust" <Trond.Myklebust@xxxxxxxxxx> wrote:

> On Sat, 2009-12-05 at 12:11 -0800, Ricardo Labiaga wrote:
>> Add session error handling to nfs4_open_delegation_recall()
>> 
>> Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@xxxxxxxxxx>
>> ---
>>  fs/nfs/nfs4proc.c |   12 ++++++++++++
>>  1 files changed, 12 insertions(+), 0 deletions(-)
>> 
>> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
>> index fb94ed0..97d4a82 100644
>> --- a/fs/nfs/nfs4proc.c
>> +++ b/fs/nfs/nfs4proc.c
>> @@ -1169,6 +1169,18 @@ int nfs4_open_delegation_recall(struct
>> nfs_open_context *ctx, struct nfs4_state
>> case -ENOENT:
>> case -ESTALE:
>> goto out;
>> +   case -NFS4ERR_BADSESSION:
>> +   case -NFS4ERR_BADSLOT:
>> +   case -NFS4ERR_BAD_HIGH_SLOT:
>> +   case -NFS4ERR_CONN_NOT_BOUND_TO_SESSION:
>> +   case -NFS4ERR_DEADSESSION:
>> +   case -NFS4ERR_SEQ_FALSE_RETRY:
>> +   case -NFS4ERR_SEQ_MISORDERED:
>> +    dprintk("%s ERROR: %d Reset session\n",
>> +     __func__, err);
>> +    set_bit(NFS4CLNT_SESSION_SETUP,
>> +     &server->nfs_client->cl_state);
>> +    goto out;
>> case -NFS4ERR_STALE_CLIENTID:
>> case -NFS4ERR_STALE_STATEID:
>> case -NFS4ERR_EXPIRED:
> 
> BADSESSION and DEADSESSION should call nfs4_schedule_state_recovery()
> instead.
> 

Will do.  I did earlier because I was still based on the master branch.

> The rest can continue to call NFS4CLNT_SESSION_RESET, but should also
> call nfs4_schedule_state_manager().

The other error handlers (nfs4_handle_exception, ...) call
nfs4_schedule_state_recovery() instead of setting NFS4CLNT_SESSION_RESET.
Should all of them be changed as well?  Not sure I understand the difference
in the handling.

- ricardo

> 
> Trond

--
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

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux