]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
windows-vnovol-20080905
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 6 Sep 2008 05:24:31 +0000 (05:24 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 6 Sep 2008 05:24:31 +0000 (05:24 +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.

src/WINNT/afsd/cm_conn.c

index 0d450d9a82eab6a5ad7e8bc6938740c547702bfd..5d923b41fc17728643ecb6f6816653b467070c0b 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) {