Kernel: Rename File::{before_removing => will_be_destroyed}

This will allow File and it's descendants to use RefCounted instead of
having a custom implementation of unref. (Since RefCounted calls
will_be_destroyed automatically)

This commit also removes an erroneous call to `before_removing` in
AHCIPort, this is a duplicate call, as the only reference to the device
is immediately dropped following the call, which in turns calls
`before_removing` via File::unref.
This commit is contained in:
Idan Horowitz 2021-12-29 01:00:29 +02:00 committed by Andreas Kling
parent d7ec5d042f
commit 4a3a947df3
6 changed files with 5 additions and 6 deletions

View file

@ -131,7 +131,7 @@ void Device::after_inserting()
});
}
void Device::before_removing()
void Device::will_be_destroyed()
{
VERIFY(m_sysfs_component);
SysFSComponentRegistry::the().devices_list().with_exclusive([&](auto& list) -> void {

View file

@ -47,7 +47,7 @@ public:
GroupID gid() const { return m_gid; }
virtual bool is_device() const override { return true; }
virtual void before_removing() override;
virtual void will_be_destroyed() override;
virtual void after_inserting();
void process_next_queued_request(Badge<AsyncDeviceRequest>, const AsyncDeviceRequest&);

View file

@ -24,7 +24,7 @@ bool File::unref() const
{
if (deref_base())
return false;
const_cast<File&>(*this).before_removing();
const_cast<File&>(*this).will_be_destroyed();
delete this;
return true;
}

View file

@ -75,7 +75,7 @@ class File
, public Weakable<File> {
public:
virtual bool unref() const;
virtual void before_removing() { }
virtual void will_be_destroyed() { }
virtual ~File();
virtual ErrorOr<NonnullRefPtr<OpenFileDescription>> open(int options);

View file

@ -77,7 +77,6 @@ void AHCIPort::handle_interrupt()
m_connected_device->prepare_for_unplug();
StorageManagement::the().remove_device(*m_connected_device);
g_io_work->queue([this]() {
m_connected_device->before_removing();
m_connected_device.clear();
});
} else {

View file

@ -29,7 +29,7 @@ bool SlavePTY::unref() const
return true;
});
if (did_hit_zero) {
const_cast<SlavePTY&>(*this).before_removing();
const_cast<SlavePTY&>(*this).will_be_destroyed();
delete this;
}
return did_hit_zero;