From: Andrew Deason Date: Tue, 28 Jan 2014 00:03:59 +0000 (-0600) Subject: afs: Translate VNOSERVICE to ETIMEDOUT X-Git-Tag: upstream/1.8.0_pre1^2~807 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=335a70653adb59795f262663af3972de016c068d;p=packages%2Fo%2Fopenafs.git afs: Translate VNOSERVICE to ETIMEDOUT Some fileservers will kill calls that are taking too long with the VNOSERVICE abort code. Our logic for retrying calls is already aware of this usage, but if we cannot retry the call, we still just return VNOSERVICE as an error code to our caller. Don't return this raw, since has the same value as ENOBUFS, which can cause a confusing error message from logs or applications ("No buffer space available"). Return ETIMEDOUT instead. Change-Id: Ic16422585a10cda7f21646a27c92f690b131ce9b Reviewed-on: http://gerrit.openafs.org/10766 Reviewed-by: Derrick Brashear Tested-by: Andrew Deason --- diff --git a/src/afs/afs_error.c b/src/afs/afs_error.c index 1943fdd36..217145fc8 100644 --- a/src/afs/afs_error.c +++ b/src/afs/afs_error.c @@ -287,6 +287,9 @@ afs_CheckCode(afs_int32 acode, struct vrequest *areq, int where) ENOSPC #endif ; + /* Some fileservers kill overly-idle calls with VNOSERVICE. */ + if (acode == VNOSERVICE) + return ETIMEDOUT; return acode;