serenity/Kernel/API
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
..
FileSystem Kernel: Change internal handling of filesystem-specific options 2024-08-03 20:35:06 +02:00
POSIX Kernel+Userland: Add immutable mounts 2024-12-23 20:38:38 +01:00
archctl_numbers.h Kernel+LibC+LibELF: Move TLS handling to userspace 2024-04-19 16:46:47 -06:00
BeepInstruction.h Kernel+Userland: Add option for duration of /dev/beep producing sound 2023-11-03 15:19:33 +01:00
DeviceEvent.h
DeviceFileTypes.h Kernel: Register block and character devices in separate HashMaps 2024-07-06 21:42:32 +02:00
InodeWatcherEvent.h Kernel+LibC: Move name length constants to Kernel/API from limits.h 2023-01-21 10:43:59 -07:00
InodeWatcherFlags.h
Ioctl.h Kernel: Change internal handling of filesystem-specific options 2024-08-03 20:35:06 +02:00
kcov.h Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
KeyCode.h LibWeb+UI: Detect and handle left vs. right modifier keys 2024-11-28 15:15:36 -05:00
MajorNumberAllocation.h Kernel: Remove the AllMiceDevice class 2024-07-06 21:42:32 +02:00
MemoryLayout.h
MousePacket.h
prctl_numbers.h Kernel: Add a prctl option to enter jail mode until an execve syscall 2024-10-03 12:39:45 +02:00
serenity_limits.h LibELF+Kernel: Don't define SERENITY_PAGE_SIZE in ELFABI.h 2024-12-03 20:57:24 +01:00
Syscall.h Kernel/x86: Add missing rcx + r11 clobber to Syscall::invoke with 4 args 2024-08-21 08:17:17 -04:00
SyscallString.h
TimePage.h Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
ttydefaults.h Kernel: Move TYPEDEF_* TTY macros to API/ttydefaults.h file 2023-03-01 19:36:53 -07:00
ttydefaultschars.h Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
Unshare.h Kernel: Introduce the unshare syscall family 2024-07-21 11:44:23 +02:00
Unveil.h
VirGL.h
VirtualMemoryAnnotations.h