X-Git-Url: http://git.jankratochvil.net/?a=blobdiff_plain;f=ntoskrnl%2Fcc%2Fcopy.c;h=10058850544101e513191d7d0fd0486fa3cb08b6;hb=refs%2Ftags%2Fcaptive-0_8;hp=93bf41e96cf89e3de7b1ebb9de986e8df76d99a6;hpb=569875a61758c7ea252562281ac4d95dce52f252;p=reactos.git diff --git a/ntoskrnl/cc/copy.c b/ntoskrnl/cc/copy.c index 93bf41e..1005885 100644 --- a/ntoskrnl/cc/copy.c +++ b/ntoskrnl/cc/copy.c @@ -242,7 +242,7 @@ WriteCacheSegment(PCACHE_SEGMENT CacheSeg) KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); Status = IoStatus.Status; } - if (!NT_SUCCESS(Status)) + if (!NT_SUCCESS(Status) && (Status != STATUS_END_OF_FILE)) { DPRINT1("IoPageWrite failed, Status %x\n", Status); CacheSeg->Dirty = TRUE; @@ -276,7 +276,7 @@ CcCopyRead (IN PFILE_OBJECT FileObject, FileObject, (ULONG)FileOffset->QuadPart, Length, Wait, Buffer, IoStatus); - Bcb = ((REACTOS_COMMON_FCB_HEADER*)FileObject->FsContext)->Bcb; + Bcb = FileObject->SectionObjectPointers->SharedCacheMap; ReadOffset = FileOffset->QuadPart; DPRINT("AllocationSize %d, FileSize %d\n", @@ -377,7 +377,7 @@ CcCopyWrite (IN PFILE_OBJECT FileObject, "Length %d, Wait %d, Buffer %x)\n", FileObject, (ULONG)FileOffset->QuadPart, Length, Wait, Buffer); - Bcb = ((REACTOS_COMMON_FCB_HEADER*)FileObject->FsContext)->Bcb; + Bcb = FileObject->SectionObjectPointers->SharedCacheMap; WriteOffset = (ULONG)FileOffset->QuadPart; if (!Wait) @@ -480,9 +480,6 @@ CcZeroData (IN PFILE_OBJECT FileObject, Length = EndOffset->u.LowPart - StartOffset->u.LowPart; - /* - * FIXME: NT uses the shared cache map field for cached/non cached detection - */ if (FileObject->SectionObjectPointers->SharedCacheMap == NULL) { /* File is not cached */ @@ -543,7 +540,7 @@ CcZeroData (IN PFILE_OBJECT FileObject, PHYSICAL_ADDRESS page; Start = StartOffset->u.LowPart; - Bcb = ((REACTOS_COMMON_FCB_HEADER*)FileObject->FsContext)->Bcb; + Bcb = FileObject->SectionObjectPointers->SharedCacheMap; if (Wait) { /* testing, if the requested datas are available */