1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:18:11 +00:00

Kernel: Simplify FS::create_inode() a little bit

Return a KResultOr<NonnullRefPtr<Inode>> instead of returning errors in
an out-parameter.
This commit is contained in:
Andreas Kling 2020-02-08 11:58:28 +01:00
parent 2f82d4fb31
commit 42d41fdf94
10 changed files with 40 additions and 51 deletions

View file

@ -88,7 +88,7 @@ RefPtr<Inode> TmpFS::get_inode(InodeIdentifier identifier) const
return it->value;
}
RefPtr<Inode> TmpFS::create_inode(InodeIdentifier parent_id, const String& name, mode_t mode, off_t size, dev_t dev, uid_t uid, gid_t gid, int& error)
KResultOr<NonnullRefPtr<Inode>> TmpFS::create_inode(InodeIdentifier parent_id, const String& name, mode_t mode, off_t size, dev_t dev, uid_t uid, gid_t gid)
{
LOCKER(m_lock);
ASSERT(parent_id.fsid() == fsid());
@ -112,7 +112,10 @@ RefPtr<Inode> TmpFS::create_inode(InodeIdentifier parent_id, const String& name,
auto it = m_inodes.find(parent_id.index());
ASSERT(it != m_inodes.end());
auto parent_inode = it->value;
error = parent_inode->add_child(inode->identifier(), name, mode);
auto result = parent_inode->add_child(inode->identifier(), name, mode);
if (result.is_error())
return result;
return inode;
}
@ -122,9 +125,9 @@ KResult TmpFS::create_directory(InodeIdentifier parent_id, const String& name, m
// Ensure it's a directory.
mode &= ~0170000;
mode |= 0040000;
int error;
if (!create_inode(parent_id, name, mode, 0, 0, uid, gid, error))
return KResult(error);
auto result = create_inode(parent_id, name, mode, 0, 0, uid, gid);
if (result.is_error())
return result.error();
return KSuccess;
}