mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 15:30:14 +00:00
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 <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit b12a038b48
)
Change-Id: Ic02b98c321d5ab28ded9a6a97f4f181de216b7b4
Reviewed-on: http://gerrit.openafs.org/7345
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
This commit is contained in:
parent
b95f16bda5
commit
5130681fa2
@ -111,7 +111,6 @@ AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject,
|
|||||||
BOOLEAN bReleasePaging = FALSE;
|
BOOLEAN bReleasePaging = FALSE;
|
||||||
BOOLEAN bExtendingWrite = FALSE;
|
BOOLEAN bExtendingWrite = FALSE;
|
||||||
BOOLEAN bCompleteIrp = TRUE;
|
BOOLEAN bCompleteIrp = TRUE;
|
||||||
BOOLEAN bForceFlush = FALSE;
|
|
||||||
BOOLEAN bLockOK;
|
BOOLEAN bLockOK;
|
||||||
BOOLEAN bMapped = TRUE;
|
BOOLEAN bMapped = TRUE;
|
||||||
HANDLE hCallingUser = OnBehalfOf;
|
HANDLE hCallingUser = OnBehalfOf;
|
||||||
@ -334,7 +333,6 @@ AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject,
|
|||||||
if( NULL != pFileObject->SectionObjectPointer->DataSectionObject && !bPagingIo && bNonCachedIo)
|
if( NULL != pFileObject->SectionObjectPointer->DataSectionObject && !bPagingIo && bNonCachedIo)
|
||||||
{
|
{
|
||||||
bNonCachedIo = FALSE;
|
bNonCachedIo = FALSE;
|
||||||
bForceFlush = TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (!bPagingIo && !bNonCachedIo))
|
if( (!bPagingIo && !bNonCachedIo))
|
||||||
@ -617,7 +615,7 @@ AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject,
|
|||||||
liStartingByte.QuadPart,
|
liStartingByte.QuadPart,
|
||||||
ulByteCount);
|
ulByteCount);
|
||||||
|
|
||||||
ntStatus = AFSCachedWrite( DeviceObject, Irp, liStartingByte, ulByteCount, bForceFlush);
|
ntStatus = AFSCachedWrite( DeviceObject, Irp, liStartingByte, ulByteCount, TRUE);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user