mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-04 12:16:41 +00: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
83f2d54ca3
commit
19f28fa8be
@ -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;
|
||||
|
||||
@ -9667,6 +9669,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