From 5130681fa2d4a35d3f0b578d92c5db1892fdfb18 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. Reviewed-on: http://gerrit.openafs.org/7319 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman (cherry picked from commit b12a038b487a47e99700c0d51273aee37aecbfca) Change-Id: Ic02b98c321d5ab28ded9a6a97f4f181de216b7b4 Reviewed-on: http://gerrit.openafs.org/7345 Tested-by: BuildBot 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 177c6cf1f0..f9e2e969dd 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