mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:18:11 +00:00
Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t>
The error handling in all these cases was still using the old style negative values to indicate errors. We have a nicer solution for this now with KResultOr<T>. This change switches the interface and then all implementers to use the new style.
This commit is contained in:
parent
de9b454f89
commit
234c6ae32d
18 changed files with 88 additions and 82 deletions
|
@ -126,7 +126,7 @@ KResult TmpFSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntry
|
|||
return KSuccess;
|
||||
}
|
||||
|
||||
ssize_t TmpFSInode::read_bytes(off_t offset, ssize_t size, UserOrKernelBuffer& buffer, FileDescription*) const
|
||||
KResultOr<ssize_t> TmpFSInode::read_bytes(off_t offset, ssize_t size, UserOrKernelBuffer& buffer, FileDescription*) const
|
||||
{
|
||||
Locker locker(m_lock, Lock::Mode::Shared);
|
||||
VERIFY(!is_directory());
|
||||
|
@ -143,11 +143,11 @@ ssize_t TmpFSInode::read_bytes(off_t offset, ssize_t size, UserOrKernelBuffer& b
|
|||
size = m_metadata.size - offset;
|
||||
|
||||
if (!buffer.write(m_content->data() + offset, size))
|
||||
return -EFAULT;
|
||||
return EFAULT;
|
||||
return size;
|
||||
}
|
||||
|
||||
ssize_t TmpFSInode::write_bytes(off_t offset, ssize_t size, const UserOrKernelBuffer& buffer, FileDescription*)
|
||||
KResultOr<ssize_t> TmpFSInode::write_bytes(off_t offset, ssize_t size, const UserOrKernelBuffer& buffer, FileDescription*)
|
||||
{
|
||||
Locker locker(m_lock);
|
||||
VERIFY(!is_directory());
|
||||
|
@ -175,7 +175,7 @@ ssize_t TmpFSInode::write_bytes(off_t offset, ssize_t size, const UserOrKernelBu
|
|||
// existing ones.
|
||||
auto tmp = KBuffer::try_create_with_size(new_size * 2);
|
||||
if (!tmp)
|
||||
return -ENOMEM;
|
||||
return ENOMEM;
|
||||
tmp->set_size(new_size);
|
||||
if (m_content)
|
||||
memcpy(tmp->data(), m_content->data(), old_size);
|
||||
|
@ -187,7 +187,7 @@ ssize_t TmpFSInode::write_bytes(off_t offset, ssize_t size, const UserOrKernelBu
|
|||
}
|
||||
|
||||
if (!buffer.read(m_content->data() + offset, size)) // TODO: partial reads?
|
||||
return -EFAULT;
|
||||
return EFAULT;
|
||||
return size;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue