volserver-manage-inuse-better-20090122
authorDerrick Brashear <shadow@dementia.org>
Thu, 22 Jan 2009 19:12:40 +0000 (19:12 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 22 Jan 2009 19:12:40 +0000 (19:12 +0000)
LICENSE IPL10
FIXES 124142

V_PEEK/V_SECRETLY should not change inUse. servertype based inUse should not
leak past giving back a volume.

src/vol/volume.c

index 5751e44..043cf09 100644 (file)
@@ -2503,7 +2503,8 @@ attach2(Error * ec, VolId volumeId, char *path, register struct VolumeHeader * h
            V_offlineMessage(vp)[0] = '\0';
        }
     } else {
-       V_inUse(vp) = programType;
+       if ((mode != V_PEEK) && (mode != V_SECRETLY))
+           V_inUse(vp) = programType;
        V_checkoutMode(vp) = mode;
     }
 
@@ -3193,6 +3194,9 @@ VDetachVolume_r(Error * ec, Volume * vp)
     DeleteVolumeFromVByPList_r(vp);
     VLRU_Delete_r(vp);
     VChangeState_r(vp, VOL_STATE_SHUTTING_DOWN);
+#else
+    if (programType != fileServer) 
+       V_inUse(vp) = 0;
 #endif /* AFS_DEMAND_ATTACH_FS */
     VPutVolume_r(vp);
     /* Will be detached sometime in the future--this is OK since volume is offline */