afs: Handle the VIO and UAEIO aborts explicitly

[ Upstream commit eb8eae65f0 ]

When processing the result of a call, handle the VIO and UAEIO abort
specifically rather than leaving it to a default case.  Rather than
erroring out unconditionally, see if there's another server if the volume
has more than one server available, otherwise return -EREMOTEIO.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Stable-dep-of: 17ba6f0bd1 ("afs: Fix error handling with lookup via FS.InlineBulkStatus")
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
David Howells
2023-10-20 16:00:18 +01:00
committed by Greg Kroah-Hartman
parent 056fc740be
commit 3cd9a24aaa

View File

@@ -330,6 +330,13 @@ bool afs_select_fileserver(struct afs_operation *op)
goto restart_from_beginning; goto restart_from_beginning;
case UAEIO:
case VIO:
op->error = -EREMOTEIO;
if (op->volume->type != AFSVL_RWVOL)
goto next_server;
goto failed;
case VDISKFULL: case VDISKFULL:
case UAENOSPC: case UAENOSPC:
/* The partition is full. Only applies to RWVOLs. /* The partition is full. Only applies to RWVOLs.