1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:38:11 +00:00
serenity/Kernel/FileSystem/SysFS
Liav A a9839d7ac5 Kernel/SysFS: Don't refresh/set-values inside the Jail spinlock scope
Only do so after a brief check if we are in a Jail or not. This fixes
SMP, because apparently it is crashing when calling try_generate()
from the SysFSGlobalInformation::refresh_data method, so the fix for
this is to simply not do that inside the Process' Jail spinlock scope,
because otherwise we will simply have a possible flow of taking
multiple conflicting Spinlocks (in the wrong order multiple times), for
the SysFSOverallProcesses generation code:
Process::current().jail(), and then Process::for_each_in_same_jail being
called, we take Process::all_instances(), and Process::current().jail()
again.
Therefore, we should at the very least eliminate the first taking of the
Process::current().jail() spinlock, in the refresh_data method of the
SysFSGlobalInformation class.
2023-01-05 23:58:13 +01:00
..
Subsystems Kernel/SysFS: Don't refresh/set-values inside the Jail spinlock scope 2023-01-05 23:58:13 +01:00
Component.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Component.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
DirectoryInode.cpp Kernel: Split the SysFS core files into smaller components 2022-11-08 02:54:48 -07:00
DirectoryInode.h Kernel: Split the SysFS core files into smaller components 2022-11-08 02:54:48 -07:00
FileSystem.cpp Kernel: Split the SysFS core files into smaller components 2022-11-08 02:54:48 -07:00
FileSystem.h Kernel: Split the SysFS core files into smaller components 2022-11-08 02:54:48 -07:00
Inode.cpp Kernel: Update the ".." inode for directories after a rename 2022-11-25 17:33:05 +01:00
Inode.h Kernel: Update the ".." inode for directories after a rename 2022-11-25 17:33:05 +01:00
LinkInode.cpp Kernel: Split the SysFS core files into smaller components 2022-11-08 02:54:48 -07:00
LinkInode.h Kernel: Split the SysFS core files into smaller components 2022-11-08 02:54:48 -07:00
Registry.cpp Kernel/SysFS: Mark SysFSDirectory traverse and lookup methods as final 2022-07-15 12:29:23 +02:00
Registry.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
RootDirectory.cpp Kernel: Introduce global variables and stats in /sys/kernel directory 2022-10-25 15:33:34 -06:00
RootDirectory.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00