mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 19:27:45 +00:00
Kernel: Use TRY() in sys$read() and sys$readv()
This commit is contained in:
parent
c1e18befe8
commit
9903f5c6ef
1 changed files with 3 additions and 8 deletions
|
@ -60,10 +60,8 @@ KResultOr<FlatPtr> Process::sys$readv(int fd, Userspace<const struct iovec*> iov
|
||||||
auto buffer = UserOrKernelBuffer::for_user_buffer((u8*)vec.iov_base, vec.iov_len);
|
auto buffer = UserOrKernelBuffer::for_user_buffer((u8*)vec.iov_base, vec.iov_len);
|
||||||
if (!buffer.has_value())
|
if (!buffer.has_value())
|
||||||
return EFAULT;
|
return EFAULT;
|
||||||
auto result = description->read(buffer.value(), vec.iov_len);
|
auto nread_here = TRY(description->read(buffer.value(), vec.iov_len));
|
||||||
if (result.is_error())
|
nread += nread_here;
|
||||||
return result.error();
|
|
||||||
nread += result.value();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nread;
|
return nread;
|
||||||
|
@ -98,10 +96,7 @@ KResultOr<FlatPtr> Process::sys$read(int fd, Userspace<u8*> buffer, size_t size)
|
||||||
auto user_buffer = UserOrKernelBuffer::for_user_buffer(buffer, size);
|
auto user_buffer = UserOrKernelBuffer::for_user_buffer(buffer, size);
|
||||||
if (!user_buffer.has_value())
|
if (!user_buffer.has_value())
|
||||||
return EFAULT;
|
return EFAULT;
|
||||||
auto result = description->read(user_buffer.value(), size);
|
return TRY(description->read(user_buffer.value(), size));
|
||||||
if (result.is_error())
|
|
||||||
return result.error();
|
|
||||||
return result.value();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue