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>
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);