6.7-stable review patch. If anyone has any objections, please let me know.
------------------
From: David Howells dhowells@redhat.com
[ Upstream commit eb8eae65f0c713bcef84b082aa919f72c3d83268 ]
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: 17ba6f0bd14f ("afs: Fix error handling with lookup via FS.InlineBulkStatus") Signed-off-by: Sasha Levin sashal@kernel.org --- fs/afs/rotate.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/fs/afs/rotate.c b/fs/afs/rotate.c index 59aed7a6dd11..a108cd55bb4e 100644 --- a/fs/afs/rotate.c +++ b/fs/afs/rotate.c @@ -330,6 +330,13 @@ bool afs_select_fileserver(struct afs_operation *op)
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 UAENOSPC: /* The partition is full. Only applies to RWVOLs.