https://git.reactos.org/?p=reactos.git;a=commitdiff;h=579a784e0431e5400dacaf...
commit 579a784e0431e5400dacaf39ee6d97b0a380ebe9 Author: Pierre Schweitzer pierre@reactos.org AuthorDate: Fri Apr 27 14:14:56 2018 +0200 Commit: Pierre Schweitzer pierre@reactos.org CommitDate: Fri Apr 27 14:14:56 2018 +0200
[NTOSKNRL] In case we leak a VACB, debug as much information as possible.
CORE-14578 --- ntoskrnl/cc/view.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/ntoskrnl/cc/view.c b/ntoskrnl/cc/view.c index 081d881d15..a0f0867080 100644 --- a/ntoskrnl/cc/view.c +++ b/ntoskrnl/cc/view.c @@ -1132,7 +1132,25 @@ CcRosDeleteFileCache ( current = CONTAINING_RECORD(current_entry, ROS_VACB, CacheMapVacbListEntry); InitializeListHead(¤t->CacheMapVacbListEntry); Refs = CcRosVacbDecRefCount(current); +#if DBG // CORE-14578 + if (Refs != 0) + { + DPRINT1("Leaking VACB %p attached to %p (%I64d)\n", current, FileObject, current->FileOffset.QuadPart); + DPRINT1("There are: %d references left\n", Refs); + DPRINT1("Pin: %d, Map: %d\n", current->PinCount, current->MappedCount); + DPRINT1("Dirty: %d\n", current->Dirty); + if (FileObject->FileName.Length != 0) + { + DPRINT1("File was: %wZ\n", &FileObject->FileName); + } + else + { + DPRINT1("No name for the file\n"); + } + } +#else ASSERT(Refs == 0); +#endif }
OldIrql = KeAcquireQueuedSpinLock(LockQueueMasterLock);