summaryrefslogtreecommitdiff
path: root/kernel/fs/ext2.c
AgeCommit message (Collapse)Author
2024-12-12signal: Remove old way of sending signals and instead use procfsAnton Kling
2024-12-09mmu: Make certain allocations physical and virtual mapping linearAnton Kling
Previously it was possible for fragmentation to occur and as a result certain allocations would have a linear virtual address space but not a linear physical address space. This is bad since a lot of calls to kmalloc_align rely upon both being linear, it has now been changed such that all allocations done by kmalloc_align now guarantee this mapping holds for both virtual and physical addresses. It was due to oversight and sheer luck that this had been working for so long.
2024-11-29ext2: Handle "zero" blocksAnton Kling
Any blocks with the value zero appear to indicate a region completly filled to zeros. I don't see this anywhere in the spec but it does make sense and the behavior matches files that I have on my FreeBSD machine so I guess it must be valid.
2024-11-28changesAnton Kling
2024-08-17ext2: Bug fix. Incorrect assumption that `len` is not modified.Anton Kling
I appear to have assumed that len would always be the number requested not the number left to be read. Therefore to get the number of bytes left ot read I did `len - rc` but the `- rc` was already accounted for by line 298.
2024-07-05TCP: Add back support for listening on a socketAnton Kling
2024-07-03Kernel/Time: Improve time keepingAnton Kling
This makes use of TSC and now provides a file system interface for userland programs to change the system time.
2024-06-30ahci/ext2: small fixesAnton Kling
2024-06-30ext2: Optimize block writesAnton Kling
2024-06-30ext2: Get multiple blocks in one function callAnton Kling
This significantly reduces I/O operations on the bitmap when large writes occur.
2024-06-30ext2: Refactor and optimize free block/inode lookupAnton Kling
2024-06-30ext2: Performance improvements to block writeAnton Kling
Don't invalidate the cache of a block if written to. Instead the cache can be changed and then be written to disk. This is optimal for ext2 since it gets to keep the cache and the hard drive since it may not have to do extra reads when doing writes.
2024-06-29Ext2: Large file support and stylistic changesAnton Kling
2024-06-29Ext2: Bug fixAnton Kling
Off by one error in block/inode lookup that caused roughly two days of debugging
2024-06-28Ext2: Support block sizes other than 1024Anton Kling
2024-06-26Kernel: Code cleanupAnton Kling
2024-06-26Ext2: Bug fixAnton Kling
2024-06-17Reorganize logging codeAnton Kling
2024-06-09Add UDPAnton Kling
2024-05-08ext2: Use LRU for block cacheAnton Kling
2024-05-04Bug: Ext2: Properly check bounds before doing reads.Anton Kling
2024-04-27Kernel: Ensure new kernel tables geet allocated for all current page directoriesAnton Kling
2024-04-27Kernel: Make file descriptor numbers reusable.Anton Kling
Instead of using the "append only" list it now uses "relist" which allows for indexes to be removed.
2024-04-26Kernel/VFS: Change polling from variables to functionsAnton Kling
Instead of having to store state in variables functions are called to check the object directly.
2024-04-26Kernel: clang format fixesAnton Kling
2024-04-26Kernel: More out of memory condition checksAnton Kling
2024-04-18Ext2: Fix uninitalized memory when reading inode headerAnton Kling
2024-04-17Kernel/ext2: Fix small bugs in ext2 fs implementation.Anton Kling
2024-04-11bug fixesAnton Kling
2024-04-02Kernel: Use "struct list" to handle file descriptors instead of a fixed ↵Anton Kling
sized array
2024-04-02Kernel: Fix some memory leaksAnton Kling
2024-03-14random changes madeAnton Kling
2024-02-21New clang-format optionsAnton Kling
2024-02-07A lot of small changesAnton Kling
2023-11-16ext2: Fix directory resolutionAnton Kling
Previously a parsing of /usr/../ would fail as it would be searching '/' for a empty file even though the desired outcome if for it to stop parsing after reaching '/'. The solution is to give the current directory inode if the file searched for in the directory is empty.
2023-11-15VFS: Add statAnton Kling
2023-11-15ext2: Bug fix. Add padding to the block group descriptor.Anton Kling
2023-11-13AHCI: Add write function.Anton Kling
This also changes the ext2 filesystem so it will now write to the file it mounted. Currently the file mounted is /dev/sda which points to a SATA drive.
2023-11-13Kernel: Add support for AHCI and make use of it with the current filesystem.Anton Kling
It will now also create a corresponding /dev/sd* device for each detected SATA drive. The filesystem still writes using the ATA driver. This should be fixed soon.
2023-11-10Ext2: Change char* to u8* where the type is referencing data and not a CAnton Kling
string
2023-11-10Kernel Style: Change uint*_t -> u*Anton Kling
2023-11-10Kernel/Memory: Fill new allocations with random data.Anton Kling
This should make it easier to spot uninitalized memory being used.
2023-11-10Kernel/fs: Dynamically allocate based upon file size.Anton Kling
This commit also changes "unsigned char" to "char". A slight step in the direction of making my coding style less bipolar.
2023-11-09Kernel/fs: Dynamically allocate depending upon file size of directory.Anton Kling
This also solves a bug where the data_p pointer could get out of range due to incorrect assumptions being made about the ext2 directory layout. To be fair even a faulty ext2 directory layout should not be able to cause memory bugs.
2023-10-31Meta: Move kernel and userland to their own folders.Anton Kling
This is to allow both the kernel and the userland to share certain header files and to make the folder structure a bit more clear.