NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
[ Upstream commit 037e56a22ff37f9a9c2330b66cff55d3d1ff9b90 ]
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
722c700dd8
commit
d8caf15ab1
@ -177,6 +177,7 @@ static int nfs4_map_errors(int err)
|
|||||||
case -NFS4ERR_RESOURCE:
|
case -NFS4ERR_RESOURCE:
|
||||||
case -NFS4ERR_LAYOUTTRYLATER:
|
case -NFS4ERR_LAYOUTTRYLATER:
|
||||||
case -NFS4ERR_RECALLCONFLICT:
|
case -NFS4ERR_RECALLCONFLICT:
|
||||||
|
case -NFS4ERR_RETURNCONFLICT:
|
||||||
return -EREMOTEIO;
|
return -EREMOTEIO;
|
||||||
case -NFS4ERR_WRONGSEC:
|
case -NFS4ERR_WRONGSEC:
|
||||||
case -NFS4ERR_WRONG_CRED:
|
case -NFS4ERR_WRONG_CRED:
|
||||||
@ -563,6 +564,7 @@ static int nfs4_do_handle_exception(struct nfs_server *server,
|
|||||||
case -NFS4ERR_GRACE:
|
case -NFS4ERR_GRACE:
|
||||||
case -NFS4ERR_LAYOUTTRYLATER:
|
case -NFS4ERR_LAYOUTTRYLATER:
|
||||||
case -NFS4ERR_RECALLCONFLICT:
|
case -NFS4ERR_RECALLCONFLICT:
|
||||||
|
case -NFS4ERR_RETURNCONFLICT:
|
||||||
exception->delay = 1;
|
exception->delay = 1;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -9445,6 +9447,7 @@ nfs4_layoutget_handle_exception(struct rpc_task *task,
|
|||||||
status = -EBUSY;
|
status = -EBUSY;
|
||||||
break;
|
break;
|
||||||
case -NFS4ERR_RECALLCONFLICT:
|
case -NFS4ERR_RECALLCONFLICT:
|
||||||
|
case -NFS4ERR_RETURNCONFLICT:
|
||||||
status = -ERECALLCONFLICT;
|
status = -ERECALLCONFLICT;
|
||||||
break;
|
break;
|
||||||
case -NFS4ERR_DELEG_REVOKED:
|
case -NFS4ERR_DELEG_REVOKED:
|
||||||
|
Loading…
Reference in New Issue
Block a user