mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 21:15:53 +02:00
NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
[ Upstream commit037e56a22f] Once the client has processed the CB_LAYOUTRECALL, but has not yet successfully returned the layout, the server is supposed to switch to returning NFS4ERR_RETURNCONFLICT. This patch ensures that we handle that return value correctly. Fixes:183d9e7b11("pnfs: rework LAYOUTGET retry handling") Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
4ffac00134
commit
8d43b944ca
|
|
@ -170,6 +170,7 @@ static int nfs4_map_errors(int err)
|
|||
case -NFS4ERR_RESOURCE:
|
||||
case -NFS4ERR_LAYOUTTRYLATER:
|
||||
case -NFS4ERR_RECALLCONFLICT:
|
||||
case -NFS4ERR_RETURNCONFLICT:
|
||||
return -EREMOTEIO;
|
||||
case -NFS4ERR_WRONGSEC:
|
||||
case -NFS4ERR_WRONG_CRED:
|
||||
|
|
@ -558,6 +559,7 @@ static int nfs4_do_handle_exception(struct nfs_server *server,
|
|||
case -NFS4ERR_GRACE:
|
||||
case -NFS4ERR_LAYOUTTRYLATER:
|
||||
case -NFS4ERR_RECALLCONFLICT:
|
||||
case -NFS4ERR_RETURNCONFLICT:
|
||||
exception->delay = 1;
|
||||
return 0;
|
||||
|
||||
|
|
@ -9662,6 +9664,7 @@ nfs4_layoutget_handle_exception(struct rpc_task *task,
|
|||
status = -EBUSY;
|
||||
break;
|
||||
case -NFS4ERR_RECALLCONFLICT:
|
||||
case -NFS4ERR_RETURNCONFLICT:
|
||||
status = -ERECALLCONFLICT;
|
||||
break;
|
||||
case -NFS4ERR_DELEG_REVOKED:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user