1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 14:25:08 +00:00
serenity/Kernel/FileSystem
Liav A ee4e9b807a Kernel: Protect internal structures in InodeWatcher with spinlocks
This was the last change that was needed to be able boot with the flag
of LOCK_IN_CRITICAL_DEBUG. That flag is not always enabled because there
are still other issues in which we hold a spinlock and still try to lock
a mutex.

Instead of using one global mutex we can protect internal structures of
the InodeWatcher class with SpinlockProtected wrappers. This in turn
allows the InodeWatcher code to be called from other parts in the kernel
while holding a prior spinlock properly.
2023-04-22 07:16:41 +02:00
..
DevPtsFS Kernel: Stop using *LockRefPtr for FileSystem pointers 2023-04-04 10:33:42 +02:00
Ext2FS Kernel: Stop using *LockRefPtr for FileSystem pointers 2023-04-04 10:33:42 +02:00
FATFS Kernel: Stop using *LockRefPtr for FileSystem pointers 2023-04-04 10:33:42 +02:00
ISO9660FS Kernel: Stop using *LockRefPtr for FileSystem pointers 2023-04-04 10:33:42 +02:00
Plan9FS Kernel: Stop using *LockRefPtr for Thread 2023-04-04 10:33:42 +02:00
ProcFS Kernel: Stop using *LockRefPtr for Process pointers 2023-04-04 10:33:42 +02:00
RAMFS Kernel: Stop using *LockRefPtr for FileSystem pointers 2023-04-04 10:33:42 +02:00
SysFS Kernel+Userland: Remove the nfds entry from /sys/kernel/processes 2023-04-21 13:55:23 +02:00
AnonymousFile.cpp Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
AnonymousFile.h Kernel: Use RefPtr instead of LockRefPtr for File and subclasses 2023-03-10 13:15:44 +01:00
BlockBasedFileSystem.cpp Kernel: Initialize DiskCache's buffer before the dirty&clean lists 2023-04-02 12:43:17 -06:00
BlockBasedFileSystem.h Kernel: Remove declarations for non-existent methods 2023-01-27 20:33:18 +00:00
Custody.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Custody.h Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
DeviceFileTypes.h Everywhere: Prefix 'TYPEDEF_DISTINCT_ORDERED_ID' with 'AK_' 2022-07-22 23:09:43 +01:00
FIFO.cpp Kernel: Use RefPtr instead of LockRefPtr for File and subclasses 2023-03-10 13:15:44 +01:00
FIFO.h Kernel: Use RefPtr instead of LockRefPtr for File and subclasses 2023-03-10 13:15:44 +01:00
File.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
File.h Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
FileBackedFileSystem.cpp Kernel: Introduce support for using FileSystem object in multiple mounts 2022-10-22 16:57:52 -04:00
FileBackedFileSystem.h Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
FileSystem.cpp Kernel/FileSystem: Discard safely filesystems when unmounted last time 2022-10-22 16:57:52 -04:00
FileSystem.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Inode.cpp Kernel: Remove unused functions related to reading full inodes 2023-04-17 01:20:23 +02:00
Inode.h Kernel: Remove unused functions related to reading full inodes 2023-04-17 01:20:23 +02:00
InodeFile.cpp Kernel: Switch LockRefPtr<Inode> to RefPtr<Inode> 2023-03-09 21:54:59 +01:00
InodeFile.h Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
InodeIdentifier.h Kernel: Remove declarations for non-existent methods 2023-01-27 20:33:18 +00:00
InodeMetadata.cpp Kernel: Use real UID/GID when checking for file access 2022-12-11 19:55:37 -07:00
InodeMetadata.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
InodeWatcher.cpp Kernel: Protect internal structures in InodeWatcher with spinlocks 2023-04-22 07:16:41 +02:00
InodeWatcher.h Kernel: Protect internal structures in InodeWatcher with spinlocks 2023-04-22 07:16:41 +02:00
Mount.cpp Kernel: Simplify Mount internals 2023-04-04 10:33:42 +02:00
Mount.h Kernel: Simplify Mount internals 2023-04-04 10:33:42 +02:00
OpenFileDescription.cpp Kernel: Remove unused functions related to reading full inodes 2023-04-17 01:20:23 +02:00
OpenFileDescription.h Kernel: Remove unused functions related to reading full inodes 2023-04-17 01:20:23 +02:00
UnveilNode.h AK+Kernel: Specialize Trie for NNOP<KString> and use it in UnveilNode 2022-02-16 22:21:37 +01:00
VirtualFileSystem.cpp Kernel: Add the futimens syscall 2023-04-10 10:21:28 +02:00
VirtualFileSystem.h Kernel: Add the futimens syscall 2023-04-10 10:21:28 +02:00