Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								086969277e 
								
							 
						 
						
							
							
								
								Everywhere: Run clang-format  
							
							
							
						 
						
							2022-04-01 21:24:45 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lenny Maiorani 
								
							 
						 
						
							
							
							
							
								
							
							
								190cf1507b 
								
							 
						 
						
							
							
								
								Kernel: Use default constructors/destructors  
							
							... 
							
							
							
							https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules 
"The compiler is more likely to get the default semantics right and
you cannot implement these functions better than the compiler." 
						
							2022-03-17 00:51:36 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								2e5a9b4fab 
								
							 
						 
						
							
							
								
								Kernel: Use HashCompatible HashMap lookups instead of specifying a hash  
							
							
							
						 
						
							2022-01-29 23:01:23 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sam Atkins 
								
							 
						 
						
							
							
							
							
								
							
							
								45cf40653a 
								
							 
						 
						
							
							
								
								Everywhere: Convert ByteBuffer factory methods from Optional -> ErrorOr  
							
							... 
							
							
							
							Apologies for the enormous commit, but I don't see a way to split this
up nicely. In the vast majority of cases it's a simple change. A few
extra places can use TRY instead of manual error checking though. :^) 
							
						 
						
							2022-01-24 22:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									David Briggs 
								
							 
						 
						
							
							
							
							
								
							
							
								cf45370c47 
								
							 
						 
						
							
							
								
								Kernel: Use ErrorOr in BlockBased and Ext2 filesystem raw read and write  
							
							... 
							
							
							
							These functions used to return booleans which withheld useful
error information for callers. Internally they would suppress
and convert Error objects. We now log or propagate these errors
up the stack. 
							
						 
						
							2022-01-23 14:36:01 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								77a81f5eed 
								
							 
						 
						
							
							
								
								Kernel: Use KString instead of String in Ext2FSInode's lookup cache  
							
							
							
						 
						
							2022-01-21 16:27:21 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								215e031bf5 
								
							 
						 
						
							
							
								
								Kenrel: Use a KString for Ext2FSDirectoryEntry::name  
							
							... 
							
							
							
							This brings Ext2FileSystem one step closer to being OOM-safe. 
							
						 
						
							2022-01-13 00:20:08 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								709fe64c1b 
								
							 
						 
						
							
							
								
								Revert "Kernel: Use a StringView for Ext2FSDirectoryEntry::name"  
							
							... 
							
							
							
							This reverts commit d1d24eaef4 
							
						 
						
							2022-01-12 21:26:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								d1d24eaef4 
								
							 
						 
						
							
							
								
								Kernel: Use a StringView for Ext2FSDirectoryEntry::name  
							
							... 
							
							
							
							This is a temporary struct, so there's no need to allocate a long term
storage for these strings. 
							
						 
						
							2022-01-12 16:09:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a4b3bf1d63 
								
							 
						 
						
							
							
								
								Kernel: Remove empty Ext2FSInode::one_ref_left()  
							
							
							
						 
						
							2022-01-11 01:12:16 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bcc0186bbc 
								
							 
						 
						
							
							
								
								Kernel/Ext2FS: Use HashMap::remove_all_matching() in Ext2FS  
							
							... 
							
							
							
							This makes the inode cache eviction mechanism quite a bit easier
to understand, thanks to the new expressive API. :^) 
							
						 
						
							2022-01-05 18:57:14 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brian Gianforcaro 
								
							 
						 
						
							
							
							
							
								
							
							
								4b4cf06069 
								
							 
						 
						
							
							
								
								Kernel: Remove temporary Vector from Ext2FS::flush_writes()  
							
							... 
							
							
							
							Previously we were using this vector to store the inodes as we iterated.
However, we don't need to store all of them, just the previous inode, as
we know it will be safe to remove it once we've iterated past that
element. 
							
						 
						
							2022-01-05 14:04:18 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brian Gianforcaro 
								
							 
						 
						
							
							
							
							
								
							
							
								6c66311ade 
								
							 
						 
						
							
							
								
								Kernel: Use MUST + Vector::try_empend instead of Vector::empend  
							
							... 
							
							
							
							In preparation for making Vector::empend unavailable during
compilation of the Kernel. 
							
						 
						
							2022-01-05 14:04:18 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brian Gianforcaro 
								
							 
						 
						
							
							
							
							
								
							
							
								24066ba5ef 
								
							 
						 
						
							
							
								
								Kernel: Use MUST + Vector::try_append instead of Vector::append  
							
							... 
							
							
							
							In preparation for making Vector::append unavailable during
compilation of the Kernel. 
							
						 
						
							2022-01-05 14:04:18 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Owen Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								f1eb975a7a 
								
							 
						 
						
							
							
								
								Kernel: Replace divide_rounded_up uses with ceil_div in Ext2FileSystem  
							
							... 
							
							
							
							This function was duplicated with ceil_div in AK. 
							
						 
						
							2022-01-04 14:18:15 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									sin-ack 
								
							 
						 
						
							
							
							
							
								
							
							
								69ef211925 
								
							 
						 
						
							
							
								
								Kernel+LibC: Move errno definitions to Kernel/API/POSIX  
							
							... 
							
							
							
							This fixes at least half of our LibC includes in the kernel. The source
of truth for errno codes and their description strings now lives in
Kernel/API/POSIX/errno.h as an enumeration, which LibC includes. 
							
						 
						
							2021-12-16 22:21:35 +03:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Hendiadyoin1 
								
							 
						 
						
							
							
							
							
								
							
							
								4cec16a713 
								
							 
						 
						
							
							
								
								Kernel: Add implied auto-specifiers in FileSystem  
							
							... 
							
							
							
							As per clang-tidy. 
							
						 
						
							2021-12-15 23:34:11 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8b1108e485 
								
							 
						 
						
							
							
								
								Everywhere: Pass AK::StringView by value  
							
							
							
						 
						
							2021-11-11 01:27:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ad5d217e76 
								
							 
						 
						
							
							
								
								Kernel/Ext2FS: Propagate HashMap errors instead of panicking  
							
							
							
						 
						
							2021-11-11 01:27:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f86ee71f65 
								
							 
						 
						
							
							
								
								Kernel/Ext2FS: Propagate errors from block list computation functions  
							
							
							
						 
						
							2021-11-10 21:58:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4661ca5f15 
								
							 
						 
						
							
							
								
								Kernel: Propagate Vector append errors in two places in Ext2FS  
							
							... 
							
							
							
							There are a bunch more of these, just taking care of some simple ones. 
							
						 
						
							2021-11-10 21:58:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								5ce753b74d 
								
							 
						 
						
							
							
								
								Kernel: Make Inode::traverse_as_directory() callback return ErrorOr  
							
							... 
							
							
							
							This allows us to propagate errors from inside the callback with TRY(). 
							
						 
						
							2021-11-10 21:58:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								88b6428c25 
								
							 
						 
						
							
							
								
								AK: Make Vector::try_* functions return ErrorOr<void>  
							
							... 
							
							
							
							Instead of signalling allocation failure with a bool return value
(false), we now use ErrorOr<void> and return ENOMEM as appropriate.
This allows us to use TRY() and MUST() with Vector. :^) 
							
						 
						
							2021-11-10 21:58:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								79fa9765ca 
								
							 
						 
						
							
							
								
								Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T>  
							
							... 
							
							
							
							We now use AK::Error and AK::ErrorOr<T> in both kernel and userspace!
This was a slightly tedious refactoring that took a long time, so it's
not unlikely that some bugs crept in.
Nevertheless, it does pass basic functionality testing, and it's just
real nice to finally see the same pattern in all contexts. :^) 
							
						 
						
							2021-11-08 01:10:53 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								fe98cb2c4b 
								
							 
						 
						
							
							
								
								Kernel: Make Ext2FS::free_inode() return KResult, and use TRY() more  
							
							... 
							
							
							
							While there's no clear propagation path for errors that happen in an
inode destructor, using TRY() still makes the code a lot nicer. 
							
						 
						
							2021-10-21 23:23:23 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								98b865fe10 
								
							 
						 
						
							
							
								
								Kernel: Make Ext2FS::write_ext2_inode() return KResult  
							
							... 
							
							
							
							This allows us to use TRY() in more places. 
							
						 
						
							2021-10-21 23:23:23 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6f69d5204f 
								
							 
						 
						
							
							
								
								Kernel: Make Inode::flush_metadata() return a KResult  
							
							... 
							
							
							
							Even if this goes nowhere yet, we have to start building an error
propagation path somewhere. 
							
						 
						
							2021-10-21 23:23:23 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								899cee8185 
								
							 
						 
						
							
							
								
								Kernel: Make KBuffer::try_create_with_size() return KResultOr  
							
							... 
							
							
							
							This allows us to use TRY() in a lot of new places. 
							
						 
						
							2021-09-07 15:15:08 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4a9c18afb9 
								
							 
						 
						
							
							
								
								Kernel: Rename FileDescription => OpenFileDescription  
							
							... 
							
							
							
							Dr. POSIX really calls these "open file description", not just
"file description", so let's call them exactly that. :^) 
							
						 
						
							2021-09-07 13:53:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b481132418 
								
							 
						 
						
							
							
								
								Kernel: Make UserOrKernelBuffer return KResult from read/write/memset  
							
							... 
							
							
							
							This allows us to simplify a whole bunch of call sites with TRY(). :^) 
							
						 
						
							2021-09-07 13:53:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b083b165a7 
								
							 
						 
						
							
							
								
								Kernel/Ext2FS: Wrap calls to traverse_as_directory() in TRY()  
							
							... 
							
							
							
							Nothing says we can't TRY() a multi-line function call. :^) 
							
						 
						
							2021-09-06 13:06:05 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								36725228fa 
								
							 
						 
						
							
							
								
								Kernel: Tidy up Ext2FS construction a bit  
							
							
							
						 
						
							2021-09-06 13:06:05 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								97e97bccab 
								
							 
						 
						
							
							
								
								Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe  
							
							
							
						 
						
							2021-09-06 01:53:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								caaeae9607 
								
							 
						 
						
							
							
								
								Kernel: Make FileSystem::get_inode() return KResultOr<NRP<Inode>>  
							
							... 
							
							
							
							This allows for natural error propagation in a bunch of new places. 
							
						 
						
							2021-09-05 18:55:55 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								865eb54f75 
								
							 
						 
						
							
							
								
								Kernel/Ext2FS: Use TRY() in the Ext2FS  
							
							... 
							
							
							
							This class was just *full* of great opportunities for TRY(). :^) 
							
						 
						
							2021-09-05 15:30:15 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9d736772bd 
								
							 
						 
						
							
							
								
								Kernel/Ext2FS: Remove a String allocation in debug logging  
							
							... 
							
							
							
							We were creating a temporary String just to log the target when writing
a symlink directly into inline storage. 
							
						 
						
							2021-09-05 01:10:55 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4cbe348a0f 
								
							 
						 
						
							
							
								
								Kernel/Ext2FS: Avoid temporary String allocation during inode creation  
							
							... 
							
							
							
							Make sure we pass the StringView we get all the way through so it never
turns into a heap-allocated String. :^) 
							
						 
						
							2021-08-29 01:09:19 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ae197deb6b 
								
							 
						 
						
							
							
								
								Kernel: Strongly typed user & group ID's  
							
							... 
							
							
							
							Prior to this change, both uid_t and gid_t were typedef'ed to `u32`.
This made it easy to use them interchangeably. Let's not allow that.
This patch adds UserID and GroupID using the AK::DistinctNumeric
mechanism we've already been employing for pid_t/ProcessID. 
							
						 
						
							2021-08-29 01:09:19 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7676edfb9b 
								
							 
						 
						
							
							
								
								Kernel: Stop allowing implicit conversion from KResult to int  
							
							... 
							
							
							
							This patch removes KResult::operator int() and deals with the fallout.
This forces a lot of code to be more explicit in its handling of errors,
greatly improving readability. 
							
						 
						
							2021-08-14 15:19:00 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d30d776ca4 
								
							 
						 
						
							
							
								
								Kernel: Make FileSystem::initialize() return KResult  
							
							... 
							
							
							
							This forced me to also come up with error codes for a bunch of
situations where we'd previously just panic the kernel. 
							
						 
						
							2021-08-14 15:19:00 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ef2720bcad 
								
							 
						 
						
							
							
								
								Kernel: Make Inode::lookup() return a KResultOr<NonnullRefPtr<Inode>>  
							
							... 
							
							
							
							This allows file systems to return arbitrary error codes instead of just
an Inode or not an Inode. 
							
						 
						
							2021-08-14 13:34:59 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								2cd8b21974 
								
							 
						 
						
							
							
								
								Kernel: Add convenience values to the Memory::Region::Access enum  
							
							... 
							
							
							
							Instead of `Memory::Region::Access::Read | Memory::Region::AccessWrite`
you can now say `Memory::Region::Access::ReadWrite`. 
							
						 
						
							2021-08-06 22:25:00 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								93d98d4976 
								
							 
						 
						
							
							
								
								Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace  
							
							
							
						 
						
							2021-08-06 14:05:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brian Gianforcaro 
								
							 
						 
						
							
							
							
							
								
							
							
								a6db2f985a 
								
							 
						 
						
							
							
								
								Kernel: Handle OOM in DiskCache when mounting Ext2 filesystems  
							
							... 
							
							
							
							Create the disk cache up front, so we can verify it succeeds.
Make the KBuffer allocation fail-able, so we can properly handle
failure when the user asks up to mount a Ext2 filesystem under
OOM conditions. 
							
						 
						
							2021-08-03 18:54:23 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brian Gianforcaro 
								
							 
						 
						
							
							
							
							
								
							
							
								15cd5d324c 
								
							 
						 
						
							
							
								
								Kernel: Handle OOM from KBuffer usage in Ext2FS::get_bitmap_block()  
							
							... 
							
							
							
							Fixes up error handling on an OOM-able path, and removes one more usage
of KBuffer::create_with_size. 
							
						 
						
							2021-08-03 18:54:23 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bd37840cf5 
								
							 
						 
						
							
							
								
								Kernel/Ext2FS: Surface Vector allocation failures in block allocation  
							
							
							
						 
						
							2021-07-18 02:15:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1f18558ee2 
								
							 
						 
						
							
							
								
								Kernel: Make FileSystem::root_inode() return a plain Inode&  
							
							... 
							
							
							
							All file system classes are expected to keep their root Inode object
in memory, so this function can safely return an Inode&. 
							
						 
						
							2021-07-18 01:53:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								58c6d30f6a 
								
							 
						 
						
							
							
								
								Kernel/Ext2FS: Cache the root inode in a member variable  
							
							... 
							
							
							
							We often get queried for the root inode, and it will always be cached
in memory anyway, so let's make Ext2FS::root_inode() fast by keeping
the root inode in a dedicated member variable. 
							
						 
						
							2021-07-18 01:53:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9457d83986 
								
							 
						 
						
							
							
								
								Kernel: Rename Locker => MutexLocker  
							
							
							
						 
						
							2021-07-18 01:53:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b8d6c3722d 
								
							 
						 
						
							
							
								
								Kernel: Remove Inode::directory_entry_count()  
							
							... 
							
							
							
							This was only used in one place: VirtualFileSystem::rmdir(), and that
has now been converted to a simple directory traversal. 
							
						 
						
							2021-07-17 22:36:04 +02:00