Browse Source

Kernel: Move FileDescription::get_dir_entries to KResultOr<ssize_t>

This normalizes the error handling with the rest of the subsystem.
Brian Gianforcaro 4 years ago
parent
commit
a643ee5759
2 changed files with 8 additions and 8 deletions
  1. 7 7
      Kernel/FileSystem/FileDescription.cpp
  2. 1 1
      Kernel/FileSystem/FileDescription.h

+ 7 - 7
Kernel/FileSystem/FileDescription.cpp

@@ -202,21 +202,21 @@ KResultOr<NonnullOwnPtr<KBuffer>> FileDescription::read_entire_file()
     return m_inode->read_entire(this);
     return m_inode->read_entire(this);
 }
 }
 
 
-ssize_t FileDescription::get_dir_entries(UserOrKernelBuffer& output_buffer, ssize_t size)
+KResultOr<ssize_t> FileDescription::get_dir_entries(UserOrKernelBuffer& output_buffer, ssize_t size)
 {
 {
     Locker locker(m_lock, Lock::Mode::Shared);
     Locker locker(m_lock, Lock::Mode::Shared);
     if (!is_directory())
     if (!is_directory())
-        return -ENOTDIR;
+        return ENOTDIR;
 
 
     auto metadata = this->metadata();
     auto metadata = this->metadata();
     if (!metadata.is_valid())
     if (!metadata.is_valid())
-        return -EIO;
+        return EIO;
 
 
     if (size < 0)
     if (size < 0)
-        return -EINVAL;
+        return EINVAL;
 
 
     size_t remaining = size;
     size_t remaining = size;
-    ssize_t error = 0;
+    KResult error = KSuccess;
     u8 stack_buffer[PAGE_SIZE];
     u8 stack_buffer[PAGE_SIZE];
     Bytes temp_buffer(stack_buffer, sizeof(stack_buffer));
     Bytes temp_buffer(stack_buffer, sizeof(stack_buffer));
     OutputMemoryStream stream { temp_buffer };
     OutputMemoryStream stream { temp_buffer };
@@ -227,10 +227,10 @@ ssize_t FileDescription::get_dir_entries(UserOrKernelBuffer& output_buffer, ssiz
         if (stream.size() == 0)
         if (stream.size() == 0)
             return true;
             return true;
         if (remaining < stream.size()) {
         if (remaining < stream.size()) {
-            error = -EINVAL;
+            error = EINVAL;
             return false;
             return false;
         } else if (!output_buffer.write(stream.bytes())) {
         } else if (!output_buffer.write(stream.bytes())) {
-            error = -EFAULT;
+            error = EFAULT;
             return false;
             return false;
         }
         }
         output_buffer = output_buffer.offset(stream.size());
         output_buffer = output_buffer.offset(stream.size());

+ 1 - 1
Kernel/FileSystem/FileDescription.h

@@ -56,7 +56,7 @@ public:
     bool can_read() const;
     bool can_read() const;
     bool can_write() const;
     bool can_write() const;
 
 
-    ssize_t get_dir_entries(UserOrKernelBuffer& buffer, ssize_t);
+    KResultOr<ssize_t> get_dir_entries(UserOrKernelBuffer& buffer, ssize_t);
 
 
     KResultOr<NonnullOwnPtr<KBuffer>> read_entire_file();
     KResultOr<NonnullOwnPtr<KBuffer>> read_entire_file();