From: David Howells <dhowells@redhat.com> Date: Fri, 20 Oct 2023 15:00:18 +0000 (+0100) Subject: afs: Handle the VIO and UAEIO aborts explicitly X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=eb8eae65f0c713bcef84b082aa919f72c3d83268;p=linux.git afs: Handle the VIO and UAEIO aborts explicitly 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 --- diff --git a/fs/afs/rotate.c b/fs/afs/rotate.c index 13ec8ffa911a7..0829933f4d9aa 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.