[NTOSKRNL]
authorPierre Schweitzer <pierre@reactos.org>
Fri, 15 Apr 2016 20:50:40 +0000 (20:50 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Fri, 15 Apr 2016 20:50:40 +0000 (20:50 +0000)
In FsRtlAddBaseMcbEntry(), don't merge runs in case there's a hole in LBNs

CORE-11002

svn path=/trunk/; revision=71166

reactos/ntoskrnl/fsrtl/largemcb.c

index 070b24b..ea312d8 100644 (file)
@@ -184,7 +184,7 @@ FsRtlAddBaseMcbEntry(IN PBASE_MCB OpaqueMcb,
     NeedleRun.StartingLbn.QuadPart = ~0ULL;
     Mcb->Mapping->Table.CompareRoutine = McbMappingIntersectCompare;
     if ((LowerRun = RtlLookupElementGenericTable(&Mcb->Mapping->Table, &NeedleRun)) &&
-        (LowerRun->StartingLbn.QuadPart < Node.StartingLbn.QuadPart))
+        (LowerRun->StartingLbn.QuadPart + (LowerRun->RunEndVbn.QuadPart - LowerRun->RunStartVbn.QuadPart) == Node.StartingLbn.QuadPart))
     {
         ASSERT(LowerRun->RunEndVbn.QuadPart == Node.RunStartVbn.QuadPart);
         Node.RunStartVbn.QuadPart = LowerRun->RunStartVbn.QuadPart;