]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Windows: cm_SetupStoreBIOD use firstModOffset chunk
authorJeffrey Altman <jaltman@your-file-system.com>
Wed, 16 Nov 2011 00:00:05 +0000 (19:00 -0500)
committerDerrick Brashear <shadow@dementix.org>
Sun, 26 Feb 2012 06:31:39 +0000 (22:31 -0800)
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.

Reviewed-on: http://gerrit.openafs.org/6057
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 320c7292e6ae014e44e89b0da736bcc04ef42b2b)

Change-Id: I26f7fc9e0c7281ca2118205d7916102c2471bb43
Reviewed-on: http://gerrit.openafs.org/6807
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
src/WINNT/afsd/cm_dcache.c

index f8815e16ecb00487ff35c1681bab6336028ff272..f7d06e080c5c00614fe3558afb70ac9f3fb4ebfe 100644 (file)
@@ -1049,8 +1049,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);