From b12a038b487a47e99700c0d51273aee37aecbfca Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 2 May 2012 18:05:26 -0400 Subject: [PATCH] Windows: Treat all cached writes as write-through Treat all writes that are cached in the windows page cache as write-through requests so that they are delivered immediately to the AFS cache. The upside is that the afsd service can begin to store data to the file server immediately which can be of significant importance whe the AFSCache is larger than the file size and the file size is large and the bandwidth to the file server is slow. In that situation the entire file can be written into the windows page cache and will only be flushed to disk at the last handle close on the file. The downside is that all data will be written to the file server including that for files that will later have the delete pending flag applied. Change-Id: Icff536f9ec768068692c1e024a943448409e7e40 Reviewed-on: http://gerrit.openafs.org/7319 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp index 177c6cf1f..f9e2e969d 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp @@ -111,7 +111,6 @@ AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject, BOOLEAN bReleasePaging = FALSE; BOOLEAN bExtendingWrite = FALSE; BOOLEAN bCompleteIrp = TRUE; - BOOLEAN bForceFlush = FALSE; BOOLEAN bLockOK; BOOLEAN bMapped = TRUE; HANDLE hCallingUser = OnBehalfOf; @@ -334,7 +333,6 @@ AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject, if( NULL != pFileObject->SectionObjectPointer->DataSectionObject && !bPagingIo && bNonCachedIo) { bNonCachedIo = FALSE; - bForceFlush = TRUE; } if( (!bPagingIo && !bNonCachedIo)) @@ -617,7 +615,7 @@ AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject, liStartingByte.QuadPart, ulByteCount); - ntStatus = AFSCachedWrite( DeviceObject, Irp, liStartingByte, ulByteCount, bForceFlush); + ntStatus = AFSCachedWrite( DeviceObject, Irp, liStartingByte, ulByteCount, TRUE); } else -- 2.39.5