mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-10-05 17:49:16 +03:00
Kernel/Ramdisk: Propagate error during Ramdisk initialize
Use the same pattern for Ramdisk similar to other storage devices during device initialization. This will propagate errors if the Ramdisk fails to initialize.
This commit is contained in:
parent
b204da94b0
commit
6ff85aa19a
Notes:
sideshowbarker
2024-07-17 03:10:07 +09:00
Author: https://github.com/Panky-codes Commit: https://github.com/SerenityOS/serenity/commit/6ff85aa19a Pull-request: https://github.com/SerenityOS/serenity/pull/17847 Reviewed-by: https://github.com/drunderscore Reviewed-by: https://github.com/supercomputer7 ✅
@ -11,9 +11,9 @@
|
||||
|
||||
namespace Kernel {
|
||||
|
||||
NonnullRefPtr<RamdiskController> RamdiskController::initialize()
|
||||
ErrorOr<NonnullRefPtr<RamdiskController>> RamdiskController::try_initialize()
|
||||
{
|
||||
return adopt_ref(*new RamdiskController());
|
||||
return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) RamdiskController()));
|
||||
}
|
||||
|
||||
bool RamdiskController::reset()
|
||||
|
@ -19,7 +19,7 @@ class AsyncBlockDeviceRequest;
|
||||
|
||||
class RamdiskController final : public StorageController {
|
||||
public:
|
||||
static NonnullRefPtr<RamdiskController> initialize();
|
||||
static ErrorOr<NonnullRefPtr<RamdiskController>> try_initialize();
|
||||
virtual ~RamdiskController() override;
|
||||
|
||||
virtual LockRefPtr<StorageDevice> device(u32 index) const override;
|
||||
|
@ -444,7 +444,12 @@ UNMAP_AFTER_INIT void StorageManagement::initialize(StringView root_device, bool
|
||||
}
|
||||
// Note: Whether PCI bus is present on the system or not, always try to attach
|
||||
// a given ramdisk.
|
||||
m_controllers.append(RamdiskController::initialize());
|
||||
auto controller = RamdiskController::try_initialize();
|
||||
if (controller.is_error()) {
|
||||
dmesgln("Unable to initialize RAM controller: {}", controller.error());
|
||||
} else {
|
||||
m_controllers.append(controller.release_value());
|
||||
}
|
||||
enumerate_storage_devices();
|
||||
enumerate_disk_partitions();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user