mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 20:22:45 +00:00 
			
		
		
		
	Kernel: Move FileDescription::get_dir_entries to KResultOr<ssize_t>
This normalizes the error handling with the rest of the subsystem.
This commit is contained in:
		
							parent
							
								
									12ab0dcee0
								
							
						
					
					
						commit
						a643ee5759
					
				
					 2 changed files with 8 additions and 8 deletions
				
			
		|  | @ -202,21 +202,21 @@ KResultOr<NonnullOwnPtr<KBuffer>> FileDescription::read_entire_file() | |||
|     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); | ||||
|     if (!is_directory()) | ||||
|         return -ENOTDIR; | ||||
|         return ENOTDIR; | ||||
| 
 | ||||
|     auto metadata = this->metadata(); | ||||
|     if (!metadata.is_valid()) | ||||
|         return -EIO; | ||||
|         return EIO; | ||||
| 
 | ||||
|     if (size < 0) | ||||
|         return -EINVAL; | ||||
|         return EINVAL; | ||||
| 
 | ||||
|     size_t remaining = size; | ||||
|     ssize_t error = 0; | ||||
|     KResult error = KSuccess; | ||||
|     u8 stack_buffer[PAGE_SIZE]; | ||||
|     Bytes temp_buffer(stack_buffer, sizeof(stack_buffer)); | ||||
|     OutputMemoryStream stream { temp_buffer }; | ||||
|  | @ -227,10 +227,10 @@ ssize_t FileDescription::get_dir_entries(UserOrKernelBuffer& output_buffer, ssiz | |||
|         if (stream.size() == 0) | ||||
|             return true; | ||||
|         if (remaining < stream.size()) { | ||||
|             error = -EINVAL; | ||||
|             error = EINVAL; | ||||
|             return false; | ||||
|         } else if (!output_buffer.write(stream.bytes())) { | ||||
|             error = -EFAULT; | ||||
|             error = EFAULT; | ||||
|             return false; | ||||
|         } | ||||
|         output_buffer = output_buffer.offset(stream.size()); | ||||
|  |  | |||
|  | @ -56,7 +56,7 @@ public: | |||
|     bool can_read() 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(); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Brian Gianforcaro
						Brian Gianforcaro