ladybird/Kernel/FileSystem
Andreas Kling c1d3ac7108 Ext2FS: Fix unpopulated block list cache after mkdir()
When creating a new directory, we set the initial size to 1 block.
This meant that we were allocating a block up front, but the Inode's
internal block list cache was not populated with this block.

This broke write_bytes() on a new directory, since it assumed that
the block list cache would be up to date if the call to write_bytes()
would not change the directory's size.

This patch fixes the issue in two ways: First, we cache the initial
block list created for new directories.
Second, we now repopulate the block list cache in write_bytes() if it
is empty when we get there. This is basically just a safety fallback
to avoid having this kind of bug in the future.
2019-11-03 10:22:09 +01:00
..
Custody.cpp Kernel: Don't create a String every time we look up a Custody by name 2019-08-25 06:45:14 +02:00
Custody.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
DevPtsFS.cpp Kernel: Move device lookup to Device class itself 2019-08-18 15:59:59 +02:00
DevPtsFS.h DevPtsFS: Do not assume there is one of it 2019-08-17 12:07:55 +02:00
DiskBackedFileSystem.cpp Kernel: Fick infinite recursion when filling up disk cache 2019-11-03 00:21:17 +01:00
DiskBackedFileSystem.h Kernel: Fick infinite recursion when filling up disk cache 2019-11-03 00:21:17 +01:00
ext2_fs.h Add clang-format file 2019-05-28 17:31:20 +02:00
ext2_types.h Add clang-format file 2019-05-28 17:31:20 +02:00
Ext2FileSystem.cpp Ext2FS: Fix unpopulated block list cache after mkdir() 2019-11-03 10:22:09 +01:00
Ext2FileSystem.h Ext2FS: Use KBuffers for the cached bitmap blocks 2019-11-03 00:10:24 +01:00
FIFO.cpp Revert "Kernel: Make DoubleBuffer use a KBuffer instead of kmalloc()ing" 2019-10-18 15:58:06 +02:00
FIFO.h Kernel: Move File.{cpp,h} into FileSystem/ 2019-07-09 15:04:45 +02:00
File.cpp FileDescription: Disallow construction with a null File 2019-08-11 09:33:31 +02:00
File.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
FileDescription.cpp Kernel: FileDescription::is_directory() should not assert !is_fifo() 2019-10-25 09:23:38 +02:00
FileDescription.h Kernel: FileDescription::is_directory() should not assert !is_fifo() 2019-10-25 09:23:38 +02:00
FileSystem.cpp Ext2FS: Trying to create a too-long directory entry should ENAMETOOLONG 2019-09-10 21:04:27 +02:00
FileSystem.h Ext2FS: Trying to create a too-long directory entry should ENAMETOOLONG 2019-09-10 21:04:27 +02:00
Inode.cpp Kernel: Rename "vmo" to "vmobject" everywhere 2019-09-04 11:27:14 +02:00
Inode.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
InodeFile.cpp Kernel: Update the mtime after a successful InodeFile::write() 2019-10-22 22:23:58 +02:00
InodeFile.h Kernel: Move File.{cpp,h} into FileSystem/ 2019-07-09 15:04:45 +02:00
InodeIdentifier.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
InodeMetadata.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
InodeWatcher.cpp Kernel: Add a mechanism for listening for changes to an inode. 2019-07-22 20:01:11 +02:00
InodeWatcher.h Kernel: Add a mechanism for listening for changes to an inode. 2019-07-22 20:01:11 +02:00
ProcFS.cpp AK: Allow JsonValue to store 64-bit integers internally 2019-10-29 16:36:50 +01:00
ProcFS.h ProcFS: Do not assume there is one of it 2019-08-17 12:07:55 +02:00
SharedMemory.cpp Kernel: Rename "vmo" to "vmobject" everywhere 2019-09-04 11:27:14 +02:00
SharedMemory.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
SyntheticFileSystem.cpp SynthFS: Remove unused create_text_file() feature 2019-08-05 22:37:50 +02:00
SyntheticFileSystem.h SynthFS: Remove unused create_text_file() feature 2019-08-05 22:37:50 +02:00
TmpFS.cpp TmpFS: Notify any associated InodeVMObject on inode changes 2019-08-24 19:59:01 +02:00
TmpFS.h Kernel: Add TmpFS 2019-08-15 19:20:51 +02:00
VirtualFileSystem.cpp ByteBuffer: Remove pointer() in favor of data() 2019-09-30 08:57:01 +02:00
VirtualFileSystem.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00