]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-windows-locking-error-codes-20051018
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 18 Oct 2005 21:53:50 +0000 (21:53 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 18 Oct 2005 21:53:50 +0000 (21:53 +0000)
cm_Lock(), cm_RetryLock() should not interpret servers be unreachable as
a sharing violation.

(cherry picked from commit 9f0f50a2b165392fc0a62f82d8c54e35108ab429)

src/WINNT/afsd/cm_vnodeops.c

index e1669ebc100508dbd78a5f744f5ffa20efb4b7ce..ad45849d9d02389ed73609f429592aa7a7760028 100644 (file)
@@ -300,8 +300,19 @@ long cm_CheckOpen(cm_scache_t *scp, int openMode, int trunc, cm_user_t *userp,
             if (code == CM_ERROR_NOACCESS &&
                 !(rights & PRSFS_WRITE))
                 code = 0;
-            else
-                code = CM_ERROR_SHARING_VIOLATION;
+            else {
+               switch (code) {
+               case CM_ERROR_ALLOFFLINE:
+               case CM_ERROR_ALLDOWN:
+               case CM_ERROR_ALLBUSY:
+               case CM_ERROR_TIMEDOUT:
+               case CM_ERROR_RETRY:
+               case CM_ERROR_WOULDBLOCK:
+                   break;
+               default:
+                   code = CM_ERROR_SHARING_VIOLATION;
+               }
+           }
         }
     }
 
@@ -377,8 +388,19 @@ long cm_CheckNTOpen(cm_scache_t *scp, unsigned int desiredAccess,
             if (code == CM_ERROR_NOACCESS &&
                 !(rights & PRSFS_WRITE))
                 code = 0;
-            else
-                code = CM_ERROR_SHARING_VIOLATION;
+            else {
+               switch (code) {
+               case CM_ERROR_ALLOFFLINE:
+               case CM_ERROR_ALLDOWN:
+               case CM_ERROR_ALLBUSY:
+               case CM_ERROR_TIMEDOUT:
+               case CM_ERROR_RETRY:
+               case CM_ERROR_WOULDBLOCK:
+                   break;
+               default:
+                   code = CM_ERROR_SHARING_VIOLATION;
+               }
+           }
         }
     }