1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:27:44 +00:00
serenity/Kernel
Andreas Kling dcc5b7397f Kernel: Take FS lock in BlockBasedFS during seek/read/write operations
Since these filesystems operate on an underlying file descriptor
and rely on its offset for correctness, let's use the FS lock to
serialize these operations.

This also means that FS subclasses can rely on block-level read/write
operations being atomic.
2021-02-26 17:15:32 +01:00
..
ACPI Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
API Kernel: Take some baby steps towards x86_64 2021-02-25 16:27:12 +01:00
Arch Kernel: Don't disable interrupts while dealing with a process crash 2021-02-25 19:36:36 +01:00
Devices Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
FileSystem Kernel: Take FS lock in BlockBasedFS during seek/read/write operations 2021-02-26 17:15:32 +01:00
Heap Kernel: Take some baby steps towards x86_64 2021-02-25 16:27:12 +01:00
Interrupts Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
PCI Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Storage Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Syscalls Kernel: Don't disable interrupts while exiting a thread or process 2021-02-25 19:36:36 +01:00
Tasks Kernel: Ignore unobserved BlockResult from Thread::Sleep 2021-02-15 08:28:57 +01:00
Time Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TTY Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
VM Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
.gitignore Meta: Expect sync-local.sh script at repository root 2021-01-30 09:18:46 +01:00
AddressSanitizer.cpp Kernel: Initial integration of Kernel Address Sanitizer (KASAN) 2021-02-15 11:41:53 +01:00
AddressSanitizer.h Kernel: Initial integration of Kernel Address Sanitizer (KASAN) 2021-02-15 11:41:53 +01:00
Assertions.h Everywhere: Remove unused RELEASE_ASSERT macro 2021-02-23 21:11:53 +01:00
CMakeLists.txt Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
CMOS.cpp Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
CMOS.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
CommandLine.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CommandLine.h Kernel: Copy command line to a safe place 2020-08-25 09:48:48 +02:00
Console.cpp Kernel: Slap UNMAP_AFTER_INIT on a bunch more functions 2021-02-19 21:42:18 +01:00
Console.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
CoreDump.cpp Kernel: Fix some clang-tidy whines in CoreDump 2021-02-25 11:32:35 +01:00
CoreDump.h Kernel: Embed a Metadata notes entry in coredumps 2020-12-30 16:28:27 +01:00
Debug.h.in Kernel: Add NE2000 network card driver 2021-02-05 09:35:02 +01:00
DMI.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
DMI.h Kernel: Set file size for smbios_entry_point and DMI blobs in ProcFS 2021-02-01 17:13:23 +01:00
DoubleBuffer.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
DoubleBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Forward.h Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
FutexQueue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
FutexQueue.h Kernel: Some futex improvements 2021-01-17 20:30:31 +01:00
init.cpp Kernel: Panic early if the kernel gets too big for its memory slot 2021-02-24 20:57:47 +01:00
IO.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
KBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
KBufferBuilder.cpp Kernel: Assert if rounding-up-to-page-size would wrap around to 0 2021-02-14 10:01:50 +01:00
KBufferBuilder.h AK+Kernel+Userland: Enable some more compiletime format string checks 2021-02-23 13:59:33 +01:00
kprintf.cpp Kernel: Don't take debug logging lock in sprintf() 2021-02-20 17:21:53 +01:00
KResult.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
kstdio.h Kernel: Remove kprintf() 2021-02-17 16:33:43 +01:00
KSyms.cpp Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
KSyms.h Kernel: Take some baby steps towards x86_64 2021-02-25 16:27:12 +01:00
linker.ld Kernel: Add .unmap_after_init section for code we don't need after init 2021-02-19 20:23:05 +01:00
Lock.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Lock.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
LockMode.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
Multiboot.h Kernel: Parse boot modules from Multiboot specification 2021-01-22 22:17:39 +01:00
Panic.cpp Kernel: Add a PANIC() function 2021-02-14 09:36:58 +01:00
Panic.h Kernel: Add a PANIC() function 2021-02-14 09:36:58 +01:00
PerformanceEventBuffer.cpp Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
PerformanceEventBuffer.h Kernel: Prune uninteresting kernel frames from profiling samples 2021-01-17 14:36:53 +01:00
PhysicalAddress.h Kernel: Mark PhysicalAddress/VirtualAddress getters as [[nodiscard]] 2021-02-15 09:34:52 +01:00
Process.cpp Kernel: Detach the traced process on process exit 2021-02-26 14:49:39 +01:00
Process.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
ProcessGroup.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
ProcessGroup.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Random.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Random.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
RTC.cpp Kernel: Don't assert if RTC believes we're in the past 2021-02-11 20:58:39 +01:00
RTC.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Scheduler.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Scheduler.h Kernel: Remove ancient unused Scheduler::beep() declaration 2021-02-07 20:45:09 +01:00
SpinLock.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
StdLib.cpp Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
StdLib.h Kernel: Mark more StdLib functions as [[nodiscard]] 2021-02-15 09:34:52 +01:00
Syscall.cpp Kernel: Don't disable interrupts while exiting a thread or process 2021-02-25 19:36:36 +01:00
Thread.cpp Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
Thread.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
ThreadBlockers.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
ThreadTracer.cpp Kernel: Reorganize ptrace implementation a bit 2021-02-08 19:34:41 +01:00
ThreadTracer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TimerQueue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TimerQueue.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
UBSanitizer.cpp Kernel: Improve KUBSAN logging for "type mismatch" errors 2021-02-24 14:27:06 +01:00
UBSanitizer.h KUBSAN: Add nearly all missing -fsanitize handlers (#5254) 2021-02-11 20:58:01 +01:00
UnixTypes.h Kernel+LibC: Add the _SC_GETPW_R_SIZE_MAX sysconf enum 2021-02-15 17:32:56 +01:00
UnveilNode.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
UserOrKernelBuffer.cpp AK: Add StringBuilder::appendff using the new format. 2020-09-22 15:06:40 +02:00
UserOrKernelBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
VirtualAddress.h Kernel: Mark PhysicalAddress/VirtualAddress getters as [[nodiscard]] 2021-02-15 09:34:52 +01:00
WaitQueue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
WaitQueue.h Kernel: Add WaitQueue::wait_forever and it use it for all infinite waits. 2021-02-15 08:28:57 +01:00