]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-vnovol-20080905
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 6 Sep 2008 05:25:59 +0000 (05:25 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 6 Sep 2008 05:25:59 +0000 (05:25 +0000)
LICENSE MIT

force a volume location update upon receipt of a VNOVOL error
in case the volume was moved.  VMOVED is only returned by the file
server if the volume is in the process of being moved.  Once it has
been deleted the file server returns VNOVOL.

(cherry picked from commit 0860d5b5b17ef5f58592d739424a4cca8dd91bb5)

src/WINNT/afsd/cm_conn.c

index b46ebac851b8c762419c925be79ee485d026e232..8240c6c9902d37c16103f0113fd829629aee780d 100644 (file)
@@ -480,7 +480,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
         for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
             if (tsrp->server == serverp) {
                 /* REDIRECT */
-                if (errorCode == VMOVED) {
+                if (errorCode == VMOVED || errorCode == VNOVOL) {
                     tsrp->status = srv_deleted;
                 } else {
                     tsrp->status = srv_offline;
@@ -499,7 +499,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
         }   
         lock_ReleaseWrite(&cm_serverLock);
 
-        if (fidp && errorCode == VMOVED)
+        if (fidp && (errorCode == VMOVED || errorCode == VNOVOL))
             cm_ForceUpdateVolume(fidp, userp, reqp);
 
         if (statep) {