Windows: Error mapping for VBUSY and VRESTARTING
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 14 Nov 2009 21:27:37 +0000 (16:27 -0500)
committerJeffrey Altman <jaltman|account-1000011@unknown>
Mon, 16 Nov 2009 22:52:53 +0000 (14:52 -0800)
Add error mapping for VBUSY and VRESTARTING to
cm_MapRPCError().  Return CM_ERROR_ALLBUSY.
This prevents an unknown error from being returned
to the SMB redirector.

LICENSE MIT

Change-Id: Ie8bf8bc88e087a8eef428444ca07c7ca7c4621a8
Reviewed-on: http://gerrit.openafs.org/826
Reviewed-by: Jacob Thebault-Spieker <summatusmentis@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

src/WINNT/afsd/cm_utils.c

index 11defd0..aea0655 100644 (file)
@@ -209,8 +209,7 @@ long cm_MapRPCError(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 < 0)
         error = CM_ERROR_UNKNOWN;
@@ -245,6 +244,8 @@ long cm_MapRPCError(long error, cm_req_t *reqp)
         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 == EISDIR)
         return CM_ERROR_ISDIR;
     return error;