mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 03:57:44 +00:00
Kernel/Storage: Properly free unused NVMeIO AsyncBlockDeviceRequest
This was the root cause of zombie processes showing up randomly and disappearing after some disk activity, such as running shell commands - The NVMeIO AsyncBlockDeviceRequest member simply held a pointer to a Process object, therefore it could keep it alive a for a long time after it ceased to actually function at all.
This commit is contained in:
parent
65854c3411
commit
0b6424d883
3 changed files with 9 additions and 3 deletions
|
@ -34,6 +34,12 @@ enum class QueueType {
|
|||
class AsyncBlockDeviceRequest;
|
||||
|
||||
struct NVMeIO {
|
||||
void clear()
|
||||
{
|
||||
used = false;
|
||||
request = nullptr;
|
||||
end_io_handler = nullptr;
|
||||
}
|
||||
RefPtr<AsyncBlockDeviceRequest> request;
|
||||
bool used = false;
|
||||
Function<void(u16 status)> end_io_handler;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue