]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
afs: Translate VNOSERVICE to ETIMEDOUT
authorAndrew Deason <adeason@sinenomine.net>
Tue, 28 Jan 2014 00:03:59 +0000 (18:03 -0600)
committerDerrick Brashear <shadow@your-file-system.com>
Wed, 29 Jan 2014 15:35:01 +0000 (07:35 -0800)
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 <shadow@your-file-system.com>
Tested-by: Andrew Deason <adeason@sinenomine.net>
src/afs/afs_error.c

index 1943fdd3670ee6a508490a19803084c56aed5607..217145fc8890d3b416784203b5de57c3906ea0f5 100644 (file)
@@ -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;