https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f3b9beeb391858c79b1fc4...
commit f3b9beeb391858c79b1fc474e566690cf2e765bc Author: Pierre Schweitzer pierre@reactos.org AuthorDate: Tue Oct 23 21:48:01 2018 +0200 Commit: Pierre Schweitzer pierre@reactos.org CommitDate: Tue Oct 23 22:07:53 2018 +0200
[NTOSKRNL] Translate pinning flags to mapping flags when first mapping a file --- ntoskrnl/cc/pin.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/ntoskrnl/cc/pin.c b/ntoskrnl/cc/pin.c index 4f0e4f5a82..d972f8a75d 100644 --- a/ntoskrnl/cc/pin.c +++ b/ntoskrnl/cc/pin.c @@ -267,6 +267,7 @@ CcpPinData( BOOLEAN Result; PROS_VACB Vacb; KIRQL OldIrql; + ULONG MapFlags;
KeAcquireSpinLock(&SharedCacheMap->BcbSpinLock, &OldIrql); NewBcb = CcpFindBcb(SharedCacheMap, FileOffset, Length, TRUE); @@ -305,7 +306,13 @@ CcpPinData( return FALSE; }
- Result = CcpMapData(SharedCacheMap, FileOffset, Length, Flags, &Vacb, Buffer); + MapFlags = Flags & PIN_WAIT; + if (BooleanFlagOn(Flags, PIN_NO_READ)) + { + SetFlag(MapFlags, MAP_NO_READ); + } + + Result = CcpMapData(SharedCacheMap, FileOffset, Length, MapFlags, &Vacb, Buffer); if (Result) { NewBcb = CcpGetAppropriateBcb(SharedCacheMap, Vacb, FileOffset, Length, Flags, TRUE);