Windows: Reset CM_VOLUMEFLAG_RO_SIZE_VALID flag
authorJeffrey Altman <jaltman@your-file-system.com>
Thu, 25 Apr 2013 15:16:11 +0000 (11:16 -0400)
committerJeffrey Altman <jaltman@your-file-system.com>
Thu, 25 Apr 2013 17:12:56 +0000 (10:12 -0700)
The CM_VOLUMEFLAG_RO_SIZE_VALID flag was being reset using the
wrong field which resulted in the flag never being cleared and
the correct volume size not being reported.

Change-Id: Ic6cefcefcd2c0ad20ad79a98cf0603f09efabcba
Reviewed-on: http://gerrit.openafs.org/9805
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

src/WINNT/afsd/cm_callback.c
src/WINNT/afsd/cm_volume.c

index a9deefa..644f845 100644 (file)
@@ -228,7 +228,7 @@ cm_callbackDiscardROVolumeByFID(cm_fid_t *fidp)
             volp->cbExpiresRO = 0;
             volp->cbIssuedRO = 0;
             volp->volumeSizeRO = 0;
-            _InterlockedAnd(&volp->volumeSizeRO, ~CM_VOLUMEFLAG_RO_SIZE_VALID);
+            _InterlockedAnd(&volp->flags, ~CM_VOLUMEFLAG_RO_SIZE_VALID);
             if (volp->cbServerpRO) {
                 cm_PutServer(volp->cbServerpRO);
                 volp->cbServerpRO = NULL;
index 6337775..00e9407 100644 (file)
@@ -79,7 +79,7 @@ cm_ShutdownVolume(void)
         volp->cbIssuedRO = 0;
         volp->cbServerpRO = NULL;
         volp->volumeSizeRO = 0;
-        _InterlockedAnd(&volp->volumeSizeRO, ~CM_VOLUMEFLAG_RO_SIZE_VALID);
+        _InterlockedAnd(&volp->flags, ~CM_VOLUMEFLAG_RO_SIZE_VALID);
 
         lock_FinalizeRWLock(&volp->rw);
     }
@@ -123,7 +123,7 @@ void cm_InitVolume(int newFile, long maxVols)
                 volp->cbIssuedRO = 0;
                 volp->cbServerpRO = NULL;
                 volp->volumeSizeRO = 0;
-                _InterlockedAnd(&volp->volumeSizeRO, ~CM_VOLUMEFLAG_RO_SIZE_VALID);
+                _InterlockedAnd(&volp->flags, ~CM_VOLUMEFLAG_RO_SIZE_VALID);
             }
         }
         osi_EndOnce(&once);