From: Jeffrey Altman Date: Tue, 6 Feb 2007 16:46:09 +0000 (+0000) Subject: windows-merge-status-20070206 X-Git-Tag: BP-openafs-windows-kdfs-ifs~822 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=55653d5dd00665c80397ab3c397063a1e636afea;p=packages%2Fo%2Fopenafs.git windows-merge-status-20070206 when merging status for store data ops, use the fileHashTable to reduce the number of buffers we must examine --- diff --git a/src/WINNT/afsd/cm_scache.c b/src/WINNT/afsd/cm_scache.c index ba49c4929..c643fc41b 100644 --- a/src/WINNT/afsd/cm_scache.c +++ b/src/WINNT/afsd/cm_scache.c @@ -1414,16 +1414,13 @@ void cm_MergeStatus(cm_scache_t *scp, AFSFetchStatus *statusp, AFSVolSync *volp, if ((flags & CM_MERGEFLAG_STOREDATA) && statusp->DataVersion - scp->dataVersion == 1) { - afs_uint32 i; cm_buf_t *bp; - for (i = 0; i < cm_data.buf_hashSize; i++) + for (bp = cm_data.buf_fileHashTablepp[BUF_FILEHASH(&scp->fid)]; bp; bp=bp->fileHashp) { - for(bp = cm_data.buf_hashTablepp[i]; bp; bp=bp->hashp) { - if (cm_FidCmp(&scp->fid, &bp->fid) == 0 && - bp->dataVersion == scp->dataVersion) - bp->dataVersion = statusp->DataVersion; - } + if (cm_FidCmp(&scp->fid, &bp->fid) == 0 && + bp->dataVersion == scp->dataVersion) + bp->dataVersion = statusp->DataVersion; } }