if (!splitdcache)
return 0;
- afs_pct1 = afs_blocksUsed_1*100/afs_cacheBlocks;
- afs_pct2 = afs_blocksUsed_2*100/afs_cacheBlocks;
+ afs_pct1 = afs_blocksUsed_1 / (afs_cacheBlocks / 100);
+ afs_pct2 = afs_blocksUsed_2 / (afs_cacheBlocks / 100);
/* Short cut: if we don't know about it, try to kill it */
if (phase < 2 && afs_blocksUsed_0)
u_int counter;
u_int cb_lowat;
u_int dc_hiwat =
- (100 - CM_DCACHECOUNTFREEPCT +
- CM_DCACHEEXTRAPCT) * afs_cacheFiles / 100;
+ PERCENT((100 - CM_DCACHECOUNTFREEPCT + CM_DCACHEEXTRAPCT), afs_cacheFiles);
afs_min_cache =
(((10 * AFS_CHUNKSIZE(0)) + afs_fsfragsize) & ~afs_fsfragsize) >> 10;
osi_GetuTime(&CTD_stats.CTD_afterSleep);
afs_TruncateDaemonRunning = 1;
while (1) {
- cb_lowat = ((CM_DCACHESPACEFREEPCT - CM_DCACHEEXTRAPCT)
- * afs_cacheBlocks) / 100;
+ cb_lowat = PERCENT((CM_DCACHESPACEFREEPCT - CM_DCACHEEXTRAPCT), afs_cacheBlocks);
MObtainWriteLock(&afs_xdcache, 266);
if (afs_CacheTooFull) {
int space_needed, slots_needed;
if (afs_WaitForCacheDrain) {
if (afs_blocksUsed <=
- (CM_CACHESIZEDRAINEDPCT * afs_cacheBlocks) / 100) {
+ PERCENT(CM_CACHESIZEDRAINEDPCT, afs_cacheBlocks)) {
afs_WaitForCacheDrain = 0;
afs_osi_Wakeup(&afs_WaitForCacheDrain);
}
if (afs_WaitForCacheDrain) {
if ((afs_blocksUsed - afs_blocksDiscarded) <=
- (CM_CACHESIZEDRAINEDPCT * afs_cacheBlocks) / 100) {
+ PERCENT(CM_CACHESIZEDRAINEDPCT, afs_cacheBlocks)) {
afs_WaitForCacheDrain = 0;
afs_osi_Wakeup(&afs_WaitForCacheDrain);
}
if (afs_WaitForCacheDrain) {
if ((afs_blocksUsed - afs_blocksDiscarded) <=
- (CM_CACHESIZEDRAINEDPCT * afs_cacheBlocks) / 100) {
+ PERCENT(CM_CACHESIZEDRAINEDPCT, afs_cacheBlocks)) {
afs_WaitForCacheDrain = 0;
afs_osi_Wakeup(&afs_WaitForCacheDrain);
}
while (afs_blocksDiscarded
&& (afs_blocksUsed >
- (CM_WAITFORDRAINPCT * afs_cacheBlocks) / 100)) {
+ PERCENT(CM_WAITFORDRAINPCT, afs_cacheBlocks))) {
afs_FreeDiscardedDCache();
}
return 0;
/* Sleep here when cache needs to be drained. */
if (setLocks && !slowPass
&& (afs_blocksUsed >
- (CM_WAITFORDRAINPCT * afs_cacheBlocks) / 100)) {
+ PERCENT(CM_WAITFORDRAINPCT, afs_cacheBlocks))) {
/* Make sure truncate daemon is running */
afs_MaybeWakeupTruncateDaemon();
ObtainWriteLock(&tdc->tlock, 614);
ReleaseWriteLock(&tdc->lock);
ReleaseReadLock(&avc->lock);
while ((afs_blocksUsed - afs_blocksDiscarded) >
- (CM_WAITFORDRAINPCT * afs_cacheBlocks) / 100) {
+ PERCENT(CM_WAITFORDRAINPCT, afs_cacheBlocks)) {
afs_WaitForCacheDrain = 1;
afs_osi_Sleep(&afs_WaitForCacheDrain);
}