clientchar_t cm_mountRootC[1024];
DWORD cm_mountRootCLen;
+int cm_readonlyVolumeVersioning = 0;
int cm_logChunkSize;
int cm_chunkSize;
}
afsi_log("CM PerFileAccessCheck is %d", cm_accessPerFileCheck);
+ dummyLen = sizeof(DWORD);
+ code = RegQueryValueEx(parmKey, "ReadOnlyVolumeVersioning", NULL, NULL,
+ (BYTE *) &dwValue, &dummyLen);
+ if (code == ERROR_SUCCESS) {
+ cm_readonlyVolumeVersioning = (unsigned short) dwValue;
+ }
+ afsi_log("CM ReadOnlyVolumeVersioning is %u", cm_readonlyVolumeVersioning);
+
RegCloseKey (parmKey);
cacheBlocks = ((afs_uint64)cacheSize * 1024) / blockSize;
return 0;
}
#endif
- if (scp->flags & CM_SCACHEFLAG_PURERO) {
+ if (cm_readonlyVolumeVersioning &&
+ (scp->flags & CM_SCACHEFLAG_PURERO)) {
cm_volume_t *volp = cm_GetVolumeByFID(&scp->fid);
if (volp) {
int haveCB = 0;
goto done;
}
- scp->volumeCreationDate = volsyncp->spare1; /* volume creation date */
+ if (cm_readonlyVolumeVersioning)
+ scp->volumeCreationDate = volsyncp->spare1; /* volume creation date */
scp->serverModTime = statusp->ServerModTime;
scp->cbServerp = NULL;
}
scp->cbExpires = 0;
+ scp->volumeCreationDate = 0;
scp->flags &= ~(CM_SCACHEFLAG_CALLBACK | CM_SCACHEFLAG_LOCAL);
cm_dnlcPurgedp(scp);
cm_dnlcPurgevp(scp);