From f86b17ab2b9ea75dacfcb508f138256c3827655b Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 2 May 2012 17:58:39 -0400 Subject: [PATCH] Windows: RDR_RequestFileExtentsAsync set current DV if the buffer returned from cm_GetBuffer() has an offset that is beyond the serverLength and it has a "bad" data version, set the data version to the current value. This is for debugging clarity. Change-Id: Icb3ee4accd0219a41813c44428070248245f2549 Reviewed-on: http://gerrit.openafs.org/7315 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsrdr/user/RDRFunction.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/WINNT/afsrdr/user/RDRFunction.c b/src/WINNT/afsrdr/user/RDRFunction.c index a75acba98..5d19f3aa9 100644 --- a/src/WINNT/afsrdr/user/RDRFunction.c +++ b/src/WINNT/afsrdr/user/RDRFunction.c @@ -3299,11 +3299,15 @@ RDR_RequestFileExtentsAsync( IN cm_user_t *userp, else minLength = scp->length; - if (!bHaveBuffer && - LargeIntegerGreaterThanOrEqualTo(bufp->offset, minLength)) { - memset(bufp->datap, 0, cm_data.buf_blockSize); - bufp->dataVersion = scp->dataVersion; - bHaveBuffer = TRUE; + if (LargeIntegerGreaterThanOrEqualTo(bufp->offset, minLength)) { + if (!bHaveBuffer) { + memset(bufp->datap, 0, cm_data.buf_blockSize); + bufp->dataVersion = scp->dataVersion; + bHaveBuffer = TRUE; + } + else if (bufp->dataVersion == CM_BUF_VERSION_BAD) { + bufp->dataVersion = scp->dataVersion; + } } else if ((RequestExtentsCB->Flags & AFS_EXTENT_FLAG_CLEAN) && ByteOffset.QuadPart <= bufp->offset.QuadPart && -- 2.39.5