serenity/Kernel/VM
Tom 82c4812730 Kernel: Remove flawed SharedInodeVMObject assertion
This assertion cannot be safely/reliably made in the
~SharedInodeVMObject destructor. The problem is that
Inode::is_shared_vmobject holds a weak reference to the instance
that is being destroyed (ref count 0). Checking the pointer using
WeakPtr::unsafe_ptr will produce nullptr depending on timing in
this case, and WeakPtr::safe_ref will reliably produce a nullptr
as soon as the reference count drops to 0. The only case where
this assertion could succeed is when WeakPtr::unsafe_ptr returned
the pointer because it won the race against revoking it. And
because WeakPtr::safe_ref will always return a nullptr, we cannot
reliably assert this from the ~SharedInodeVMObject destructor.

Fixes #4621
2020-12-31 10:52:45 +01:00
..
AnonymousVMObject.cpp
AnonymousVMObject.h
ContiguousVMObject.cpp
ContiguousVMObject.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
InodeVMObject.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
InodeVMObject.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
MappedROM.h Kernel: Fix various forward declarations 2020-09-12 13:46:15 +02:00
MemoryManager.cpp AK: Remove custom %w format string specifier 2020-12-25 17:05:05 +01:00
MemoryManager.h Kernel: Move KBufferBuilder to the fallible KBuffer API 2020-12-18 19:22:26 +01:00
PageDirectory.cpp Kernel: Prevent sign bit extension when creating a PDPTE 2020-12-30 20:33:15 +01:00
PageDirectory.h Kernel: Protect the PageDirectory from concurrent access 2020-11-11 12:27:25 +01:00
PhysicalPage.cpp Kernel: Make PhysicalPage not movable and use atomic ref counting 2020-08-25 09:48:48 +02:00
PhysicalPage.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
PhysicalRegion.cpp Kernel/VM: Make local_offset in PhysicalRegion::find_one_free_page unsigned 2020-12-29 02:20:26 +01:00
PhysicalRegion.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
PrivateInodeVMObject.cpp
PrivateInodeVMObject.h
ProcessPagingScope.cpp
ProcessPagingScope.h
PurgeableVMObject.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
PurgeableVMObject.h
RangeAllocator.cpp AK: Make binary_search signature more generic. 2020-12-30 02:13:30 +01:00
RangeAllocator.h Kernel: Add locks around RangeAllocator 2020-11-11 12:27:25 +01:00
Region.cpp Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
Region.h Kernel+LibC: Add a very limited sys$mremap() implementation 2020-12-29 02:20:43 +01:00
SharedInodeVMObject.cpp Kernel: Remove flawed SharedInodeVMObject assertion 2020-12-31 10:52:45 +01:00
SharedInodeVMObject.h Kernel: Remove flawed SharedInodeVMObject assertion 2020-12-31 10:52:45 +01:00
TypedMapping.h
VMObject.cpp Refactor: Replace usages of FixedArray with Vector. 2020-09-08 14:01:21 +02:00
VMObject.h Refactor: Replace usages of FixedArray with Vector. 2020-09-08 14:01:21 +02:00