mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-29 14:14:45 +03:00
Kernel: Tidy up VirtualFileSystem::mount_root() a little bit
- Return KResult instead of bool - Use TRY()
This commit is contained in:
parent
b0f2acbd91
commit
71187d865e
Notes:
sideshowbarker
2024-07-18 04:43:10 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/71187d865e5
@ -111,11 +111,11 @@ KResult VirtualFileSystem::unmount(Inode& guest_inode)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
bool VirtualFileSystem::mount_root(FileSystem& fs)
|
KResult VirtualFileSystem::mount_root(FileSystem& fs)
|
||||||
{
|
{
|
||||||
if (m_root_inode) {
|
if (m_root_inode) {
|
||||||
dmesgln("VirtualFileSystem: mount_root can't mount another root");
|
dmesgln("VirtualFileSystem: mount_root can't mount another root");
|
||||||
return false;
|
return EEXIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mount mount { fs, nullptr, root_mount_flags };
|
Mount mount { fs, nullptr, root_mount_flags };
|
||||||
@ -123,7 +123,7 @@ bool VirtualFileSystem::mount_root(FileSystem& fs)
|
|||||||
auto& root_inode = fs.root_inode();
|
auto& root_inode = fs.root_inode();
|
||||||
if (!root_inode.is_directory()) {
|
if (!root_inode.is_directory()) {
|
||||||
dmesgln("VirtualFileSystem: root inode ({}) for / is not a directory :(", root_inode.identifier());
|
dmesgln("VirtualFileSystem: root inode ({}) for / is not a directory :(", root_inode.identifier());
|
||||||
return false;
|
return ENOTDIR;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_root_inode = root_inode;
|
m_root_inode = root_inode;
|
||||||
@ -133,11 +133,8 @@ bool VirtualFileSystem::mount_root(FileSystem& fs)
|
|||||||
mounts.append(move(mount));
|
mounts.append(move(mount));
|
||||||
});
|
});
|
||||||
|
|
||||||
auto custody_or_error = Custody::try_create(nullptr, "", *m_root_inode, root_mount_flags);
|
m_root_custody = TRY(Custody::try_create(nullptr, "", *m_root_inode, root_mount_flags));
|
||||||
if (custody_or_error.is_error())
|
return KSuccess;
|
||||||
return false;
|
|
||||||
m_root_custody = custody_or_error.release_value();
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto VirtualFileSystem::find_mount_for_host(InodeIdentifier id) -> Mount*
|
auto VirtualFileSystem::find_mount_for_host(InodeIdentifier id) -> Mount*
|
||||||
|
@ -42,7 +42,7 @@ public:
|
|||||||
VirtualFileSystem();
|
VirtualFileSystem();
|
||||||
~VirtualFileSystem();
|
~VirtualFileSystem();
|
||||||
|
|
||||||
bool mount_root(FileSystem&);
|
KResult mount_root(FileSystem&);
|
||||||
KResult mount(FileSystem&, Custody& mount_point, int flags);
|
KResult mount(FileSystem&, Custody& mount_point, int flags);
|
||||||
KResult bind_mount(Custody& source, Custody& mount_point, int flags);
|
KResult bind_mount(Custody& source, Custody& mount_point, int flags);
|
||||||
KResult remount(Custody& mount_point, int new_flags);
|
KResult remount(Custody& mount_point, int new_flags);
|
||||||
|
@ -320,7 +320,7 @@ void init_stage2(void*)
|
|||||||
SB16::detect();
|
SB16::detect();
|
||||||
|
|
||||||
StorageManagement::initialize(kernel_command_line().root_device(), kernel_command_line().is_force_pio());
|
StorageManagement::initialize(kernel_command_line().root_device(), kernel_command_line().is_force_pio());
|
||||||
if (!VirtualFileSystem::the().mount_root(StorageManagement::the().root_filesystem())) {
|
if (VirtualFileSystem::the().mount_root(StorageManagement::the().root_filesystem()).is_error()) {
|
||||||
PANIC("VirtualFileSystem::mount_root failed");
|
PANIC("VirtualFileSystem::mount_root failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user