1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 09:38:11 +00:00
serenity/Kernel/FileSystem
Tom da5cc34ebb Kernel: Fix some issues related to fixes and block conditions
Fix some problems with join blocks where the joining thread block
condition was added twice, which lead to a crash when trying to
unblock that condition a second time.

Deferred block condition evaluation by File objects were also not
properly keeping the File object alive, which lead to some random
crashes and corruption problems.

Other problems were caused by the fact that the Queued state didn't
handle signals/interruptions consistently. To solve these issues we
remove this state entirely, along with Thread::wait_on and change
the WaitQueue into a BlockCondition instead.

Also, deliver signals even if there isn't going to be a context switch
to another thread.

Fixes #4336 and #4330
2020-12-12 21:28:12 +01:00
..
BlockBasedFileSystem.cpp Kernel: Use a doubly-linked list for the BlockBasedFS cache 2020-11-24 16:42:01 +01:00
BlockBasedFileSystem.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
Custody.cpp Kernel: Support read-only filesystem mounts 2020-05-29 07:53:30 +02:00
Custody.h Kernel: Support read-only filesystem mounts 2020-05-29 07:53:30 +02:00
DevPtsFS.cpp AK: Make RefPtr, NonnullRefPtr, WeakPtr thread safe 2020-11-10 19:11:52 +01:00
DevPtsFS.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
ext2_fs.h Meta: Remove some copyright headers added in error 2020-01-25 10:34:32 +01:00
ext2_types.h Meta: Add a script check the presence of "#pragma once" in header files 2020-05-29 07:59:45 +02:00
Ext2FileSystem.cpp Kernel: Reduce ByteBuffer thrashing in inode block list generation 2020-11-24 21:29:08 +01:00
Ext2FileSystem.h Ext2FS: Deallocate block list meta blocks when freeing an inode 2020-11-07 16:45:03 +01:00
FIFO.cpp Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
FIFO.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
File.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
File.h Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
FileBackedFileSystem.cpp Kernel: Split BlockBasedFileSystem off FileBackedFileSystem 2020-07-05 12:26:27 +02:00
FileBackedFileSystem.h Kernel: Split BlockBasedFileSystem off FileBackedFileSystem 2020-07-05 12:26:27 +02:00
FileDescription.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
FileDescription.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
FileSystem.cpp Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
FileSystem.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Inode.cpp ProcFS: Take the "all inodes" lock when generating /proc/inodes 2020-11-23 16:19:30 +01:00
Inode.h ProcFS: Take the "all inodes" lock when generating /proc/inodes 2020-11-23 16:19:30 +01:00
InodeFile.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
InodeFile.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
InodeIdentifier.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
InodeMetadata.h Everywhere: Redundant inline specifier on constexpr functions (#3807) 2020-10-20 18:08:13 +02:00
InodeWatcher.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
InodeWatcher.h Kernel: Let InodeWatcher track child inode numbers instead of names 2020-09-19 16:39:52 +02:00
Plan9FileSystem.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Plan9FileSystem.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
ProcFS.cpp Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
ProcFS.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
TmpFS.cpp TmpFS: Set the root inode's timestamp to the current time 2020-11-14 10:44:47 +01:00
TmpFS.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
VirtualFileSystem.cpp Kernel: Add unveil('b') 2020-11-23 18:37:40 +01:00
VirtualFileSystem.h Kernel: Fix various forward declarations 2020-09-12 13:46:15 +02:00