serenity/Kernel/Tasks
Liav A. 1dfc9e2df3 Kernel+Userland: Add immutable mounts
Immutable mounts are mounts that can't be changed in any aspect, if the
VFSRootContext that hold them is used by a process. This includes two
operations on a mount:
1. Trying to remove the mount from the mount table.
2. Trying to change the flags of the mount.

The condition of a VFSRootContext being held by a process or not is
crucial, as the intention is to allow removal of mounts that marked as
immutable if the VFSRootContext is not being used anymore (for example,
if the container that was created with such context stopped).

Marking mounts as immutable on the first VFS root context essentially
ensures they will never be modified because there will be a process
using that context (which is the "main" VFS root context in the system
runtime).

It should be noted that setting a mount as immutable can be done in
creation time of the mount by passing the MS_IMMUTABLE flag, or by doing
a remount with MS_IMMUTABLE flag.
2024-12-23 20:38:38 +01:00
..
AtomicEdgeAction.h
Coredump.cpp Kernel: Create coredump by using the crashed process VFS root context 2024-08-10 10:14:37 -04:00
Coredump.h
CrashHandler.cpp Kernel: Make CrashHandler more useful before init_stage2 2023-12-09 22:36:28 +01:00
FinalizerTask.cpp
FinalizerTask.h
FutexQueue.cpp
FutexQueue.h
HostnameContext.cpp Kernel: Introduce the HostnameContext class 2024-07-21 11:44:23 +02:00
HostnameContext.h Kernel: Introduce the HostnameContext class 2024-07-21 11:44:23 +02:00
PerformanceEventBuffer.cpp Kernel: Use AK::unwind_stack_from_frame_pointer 2024-05-14 14:02:06 -06:00
PerformanceEventBuffer.h
PerformanceManager.h Kernel: Remove passing of register state to IRQ handlers 2024-09-01 21:00:18 +02:00
PowerStateSwitchTask.cpp Kernel+Userland: Add immutable mounts 2024-12-23 20:38:38 +01:00
PowerStateSwitchTask.h
Process.cpp Kernel+Userland: Add immutable mounts 2024-12-23 20:38:38 +01:00
Process.h Kernel: Add a prctl option to enter jail mode until an execve syscall 2024-10-03 12:39:45 +02:00
ProcessGroup.cpp
ProcessGroup.h
Scheduler.cpp Kernel: Remove passing of register state to IRQ handlers 2024-09-01 21:00:18 +02:00
Scheduler.h Kernel: Remove passing of register state to IRQ handlers 2024-09-01 21:00:18 +02:00
ScopedProcessList.cpp Kernel+Userland: Reduce jails to be a simple boolean flag 2024-07-21 11:44:23 +02:00
ScopedProcessList.h Kernel+Userland: Reduce jails to be a simple boolean flag 2024-07-21 11:44:23 +02:00
SyncTask.cpp Kernel: Move most of VirtualFileSystem code to be in a namespace 2024-07-21 11:44:23 +02:00
SyncTask.h
Thread.cpp Kernel: Use the correct ip in the dispatch_signal debug output 2024-08-21 08:17:17 -04:00
Thread.h Everywhere: Fix compilation with Clang 19 2024-10-02 21:42:33 -04:00
ThreadBlockers.cpp
ThreadTracer.cpp
ThreadTracer.h
WaitQueue.cpp
WaitQueue.h
WorkQueue.cpp
WorkQueue.h