Windows: Handle RX_RESTARTING consistently for all RPCs
authorJeffrey Altman <jaltman@your-file-system.com>
Sun, 22 Aug 2010 14:05:59 +0000 (10:05 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Mon, 6 Sep 2010 03:53:42 +0000 (20:53 -0700)
Translate RX_RESTARTING to the same cache manager error code
for all RPC classes.

LICENSE MIT

Change-Id: I4540e9886d1de68d9b3f8a2e72508f876225ff4a
Reviewed-on: http://gerrit.openafs.org/2654
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

src/WINNT/afsd/cm_utils.c

index aea0655..58a94cb 100644 (file)
@@ -270,9 +270,14 @@ long cm_MapRPCErrorRmdir(long error, cm_req_t *reqp)
     error = et_to_sys_error(error);
 
     if (error == RX_CALL_DEAD ||
-        error == RX_CALL_TIMEOUT ||
-        error == RX_RESTARTING)
+        error == RX_CALL_TIMEOUT)
         error = CM_ERROR_RETRY;
+    else if (error == VNOVNODE)
+        error = CM_ERROR_BADFD;
+    else if (error == VNOSERVICE || error == VSALVAGE || error == VOFFLINE)
+        error = CM_ERROR_ALLOFFLINE;
+    else if (error == VBUSY || error == VRESTARTING)
+        error = CM_ERROR_ALLBUSY;
     else if (error < 0)
         error = CM_ERROR_UNKNOWN;
     else if (error == EROFS) 
@@ -310,9 +315,10 @@ long cm_MapVLRPCError(long error, cm_req_t *reqp)
     error = et_to_sys_error(error);
 
     if (error == RX_CALL_DEAD ||
-        error == RX_CALL_TIMEOUT ||
-        error == RX_RESTARTING)
+        error == RX_CALL_TIMEOUT)
         error = CM_ERROR_RETRY;
+    else if (error == RX_RESTARTING)
+        error = CM_ERROR_ALLBUSY;
     else if (error < 0)
         error = CM_ERROR_UNKNOWN;
     else if (error == VL_NOENT || error == VL_BADNAME)