From 320c7292e6ae014e44e89b0da736bcc04ef42b2b Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 15 Nov 2011 19:00:05 -0500 Subject: [PATCH] Windows: cm_SetupStoreBIOD use firstModOffset chunk When cm_SetupStoreBIOD attempts to store a chunk to the file server it should not use *inOffsetp as the start of the range. There is no guarantee that the buffer at *inOffsetp is dirty. Instead use firstModOffset which refers to the first known dirty buffer in the range specified by the caller. Attempt to fill a chunk of consecutive dirty buffers from that point. Change-Id: I468e896b046192461d6fe0dc3669e5feeb7886ba Reviewed-on: http://gerrit.openafs.org/6057 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- src/WINNT/afsd/cm_dcache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/WINNT/afsd/cm_dcache.c b/src/WINNT/afsd/cm_dcache.c index 1598714cd..9a7e82a0a 100644 --- a/src/WINNT/afsd/cm_dcache.c +++ b/src/WINNT/afsd/cm_dcache.c @@ -1088,8 +1088,8 @@ long cm_SetupStoreBIOD(cm_scache_t *scp, osi_hyper_t *inOffsetp, long inSize, biop->offset = firstModOffset; bufp = NULL; /* this buffer and reference added to the queue */ - /* compute the window surrounding *inOffsetp of size cm_chunkSize */ - scanStart = *inOffsetp; + /* compute the window surrounding firstModOffset of size cm_chunkSize */ + scanStart = firstModOffset; scanStart.LowPart &= (-cm_chunkSize); thyper = ConvertLongToLargeInteger(cm_chunkSize); scanEnd = LargeIntegerAdd(scanStart, thyper); -- 2.39.5