diff --git a/Kernel/FileSystem/Plan9FileSystem.cpp b/Kernel/FileSystem/Plan9FileSystem.cpp index 71c334a04d..cb3bbcd727 100644 --- a/Kernel/FileSystem/Plan9FileSystem.cpp +++ b/Kernel/FileSystem/Plan9FileSystem.cpp @@ -513,10 +513,7 @@ KResult Plan9FS::post_message(Message& message, RefPtr comple return EINTR; } auto data_buffer = UserOrKernelBuffer::for_kernel_buffer(const_cast(data)); - auto nwritten_or_error = description.write(data_buffer, size); - if (nwritten_or_error.is_error()) - return nwritten_or_error.error(); - auto nwritten = nwritten_or_error.value(); + auto nwritten = TRY(description.write(data_buffer, size)); data += nwritten; size -= nwritten; } @@ -534,10 +531,7 @@ KResult Plan9FS::do_read(u8* data, size_t size) return EINTR; } auto data_buffer = UserOrKernelBuffer::for_kernel_buffer(data); - auto nread_or_error = description.read(data_buffer, size); - if (nread_or_error.is_error()) - return nread_or_error.error(); - auto nread = nread_or_error.value(); + auto nread = TRY(description.read(data_buffer, size)); if (nread == 0) return EIO; data += nread; @@ -554,18 +548,14 @@ KResult Plan9FS::read_and_dispatch_one_message() u16 tag; }; Header header; - KResult result = do_read(reinterpret_cast(&header), sizeof(header)); - if (result.is_error()) - return result; + TRY(do_read(reinterpret_cast(&header), sizeof(header))); auto buffer = KBuffer::try_create_with_size(header.size, Memory::Region::Access::ReadWrite); if (!buffer) return ENOMEM; // Copy the already read header into the buffer. memcpy(buffer->data(), &header, sizeof(header)); - result = do_read(buffer->data() + sizeof(header), header.size - sizeof(header)); - if (result.is_error()) - return result; + TRY(do_read(buffer->data() + sizeof(header), header.size - sizeof(header))); MutexLocker locker(m_lock); @@ -596,9 +586,7 @@ KResult Plan9FS::post_message_and_wait_for_a_reply(Message& message) auto request_type = message.type(); auto tag = message.tag(); auto completion = adopt_ref(*new ReceiveCompletion(tag)); - auto result = post_message(message, completion); - if (result.is_error()) - return result; + TRY(post_message(message, completion)); if (Thread::current()->block({}, *this, message, completion).was_interrupted()) return EINTR; @@ -728,9 +716,7 @@ KResult Plan9FSInode::ensure_open_for_mode(int mode) KResultOr Plan9FSInode::read_bytes(off_t offset, size_t size, UserOrKernelBuffer& buffer, FileDescription*) const { - auto result = const_cast(*this).ensure_open_for_mode(O_RDONLY); - if (result.is_error()) - return result; + TRY(const_cast(*this).ensure_open_for_mode(O_RDONLY)); size = fs().adjust_buffer_size(size); @@ -741,8 +727,7 @@ KResultOr Plan9FSInode::read_bytes(off_t offset, size_t size, UserOrKern bool readlink_succeded = false; if (fs().m_remote_protocol_version >= Plan9FS::ProtocolVersion::v9P2000L && offset == 0) { message << fid(); - result = fs().post_message_and_wait_for_a_reply(message); - if (result.is_success()) { + if (auto result = fs().post_message_and_wait_for_a_reply(message); result.is_success()) { readlink_succeded = true; message >> data; } @@ -751,9 +736,7 @@ KResultOr Plan9FSInode::read_bytes(off_t offset, size_t size, UserOrKern if (!readlink_succeded) { message = Plan9FS::Message { fs(), Plan9FS::Message::Type::Tread }; message << fid() << (u64)offset << (u32)size; - result = fs().post_message_and_wait_for_a_reply(message); - if (result.is_error()) - return result.error(); + TRY(fs().post_message_and_wait_for_a_reply(message)); data = message.read_data(); } @@ -767,23 +750,15 @@ KResultOr Plan9FSInode::read_bytes(off_t offset, size_t size, UserOrKern KResultOr Plan9FSInode::write_bytes(off_t offset, size_t size, const UserOrKernelBuffer& data, FileDescription*) { - auto result = ensure_open_for_mode(O_WRONLY); - if (result.is_error()) - return result.error(); - + TRY(ensure_open_for_mode(O_WRONLY)); size = fs().adjust_buffer_size(size); - auto data_copy_or_error = data.try_copy_into_kstring(size); // FIXME: this seems ugly - if (data_copy_or_error.is_error()) - return data_copy_or_error.error(); - auto data_copy = data_copy_or_error.release_value(); + auto data_copy = TRY(data.try_copy_into_kstring(size)); // FIXME: this seems ugly Plan9FS::Message message { fs(), Plan9FS::Message::Type::Twrite }; message << fid() << (u64)offset; message.append_data(data_copy->view()); - result = fs().post_message_and_wait_for_a_reply(message); - if (result.is_error()) - return result.error(); + TRY(fs().post_message_and_wait_for_a_reply(message)); u32 nwritten; message >> nwritten; @@ -852,8 +827,6 @@ void Plan9FSInode::flush_metadata() KResult Plan9FSInode::traverse_as_directory(Function callback) const { - KResult result = KSuccess; - // TODO: Should we synthesize "." and ".." here? if (fs().m_remote_protocol_version >= Plan9FS::ProtocolVersion::v9P2000L) { @@ -862,12 +835,10 @@ KResult Plan9FSInode::traverse_as_directory(Function