pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE
[ Upstream commit fe44fb23d6ccde4c914c44ef74ab8d9d9ba02bea ]
If the server tells us that a pNFS layout is not available for a
specific file, then we should not keep pounding it with further
layoutget requests.
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
e32fe87afc
commit
11c870c0b5
@ -2111,6 +2111,12 @@ lookup_again:
|
|||||||
case -ERECALLCONFLICT:
|
case -ERECALLCONFLICT:
|
||||||
case -EAGAIN:
|
case -EAGAIN:
|
||||||
break;
|
break;
|
||||||
|
case -ENODATA:
|
||||||
|
/* The server returned NFS4ERR_LAYOUTUNAVAILABLE */
|
||||||
|
pnfs_layout_set_fail_bit(
|
||||||
|
lo, pnfs_iomode_to_fail_bit(iomode));
|
||||||
|
lseg = NULL;
|
||||||
|
goto out_put_layout_hdr;
|
||||||
default:
|
default:
|
||||||
if (!nfs_error_is_fatal(PTR_ERR(lseg))) {
|
if (!nfs_error_is_fatal(PTR_ERR(lseg))) {
|
||||||
pnfs_layout_clear_fail_bit(lo, pnfs_iomode_to_fail_bit(iomode));
|
pnfs_layout_clear_fail_bit(lo, pnfs_iomode_to_fail_bit(iomode));
|
||||||
|
Loading…
Reference in New Issue
Block a user