| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 41 hours | kernel/fs: ext2: fix block allocation on 1 KiB fs | Felix Morgner | 1 | -2/+2 | |
| When computing the actual block numbers for a filesystem, care must be taken to account for which block is the actual first data block. For 1 KiB block size filesystems, that block is actually block 1, not 0. This is because the first 1 KiB on any ext2 volume is reserved for bootloader data. Complicating matters, the bitmaps don't take this into account. They essentially reflect a logical view, describing which data blocks are already allocated. On a 1 KiB filesystem, this effectively means that bit 0 of the allocation bitmap references physical block 1. Luckily, we don't need to make that determination based on the block size at all. The superblock already carries the number of the first data block. That means one can simply add that number, which is 1 in the 1 KiB block size case and 0 otherwise, to the found block index. Interestingly, this was already caught by accident when locating the authoritative block group descriptor (BGD) table. A factor of two was multiplied into the calculation in the case of a 1 KiB block size. This factor arises because the primary BGD table follows the primary superblock. Since the superblock is located in physical block 0 in all cases except for a 1 KiB block size, the BGD table generally lands in block 1. This implies an offset of 1 block size from the volume start. In the 1 KiB case, the BGD table lands in block number 2, effectively at an offset of 2 blocks from the start of the volume. This changeset makes that calculation explicit in the BGD table locator code as well. This clarifies the previously obscure factor of 2. | |||||
| 44 hours | kernel/vfs: add identity based mount removal | Felix Morgner | 2 | -1/+17 | |
| 44 hours | kernel/vfs: mount: resolve return type todo | Felix Morgner | 4 | -47/+21 | |
| 45 hours | kernel/vfs: replace owning_mount with driver_state | Felix Morgner | 23 | -239/+297 | |
| 3 days | kernel/fs: devfs: inject . and .. entries | Felix Morgner | 2 | -23/+69 | |
| 3 days | kernel: add 'ls' style demo | Felix Morgner | 1 | -21/+56 | |
| 3 days | kstd: units: improve formatter | Felix Morgner | 1 | -1/+4 | |
| 3 days | kernel/fs: devfs: implement basic stat | Felix Morgner | 2 | -1/+14 | |
| 3 days | kernel: add directory listing to demo. | Felix Morgner | 1 | -0/+26 | |
| 3 days | kapi/fs: implement read_directory | Felix Morgner | 24 | -153/+83 | |
| This change also replaces the kernel internal directory_listing_cursor and directory_listing_entry with the kapi types directory_cursor and directory_entry. | |||||
| 4 days | kapi/fs: add stub implementation of read_directory | Felix Morgner | 2 | -0/+20 | |
| 4 days | kapi/fs: introduce read_directory API | Felix Morgner | 3 | -0/+58 | |
| 4 days | build: expand presets with release tests | Felix Morgner | 1 | -1/+62 | |
| 4 days | kernel: split vfs and filesystem drivers | Felix Morgner | 117 | -1719/+1718 | |
| 4 days | kernel/fs: vfs: make file descriptor polymorphic | Felix Morgner | 12 | -235/+590 | |
| 4 days | kernel/fs: rootfs: implement read_directory | Felix Morgner | 2 | -0/+16 | |
| 4 days | kernel/fs: ext2: add missing iterator type alias | Felix Morgner | 1 | -0/+1 | |
| 4 days | kernel/fs: ext2: implement read_directory | Felix Morgner | 7 | -8/+316 | |
| 4 days | kernel/fs: ext2: clean up stateless functions | Felix Morgner | 10 | -748/+678 | |
| 4 days | kernel/fs: ext2: move superblock flags | Felix Morgner | 3 | -27/+41 | |
| 4 days | Merge branch 'fmorgner/stateless-fs-drivers' into 'develop' | Felix Morgner | 67 | -1354/+2645 | |
| kernel/fs: rework filesystem subsystem to use stateless drivers See merge request teachos/kernel!56 | |||||
| 4 days | kernel/fs: ext2: apply strict locking discipline | Felix Morgner | 7 | -77/+146 | |
| 4 days | fixup! kernel/fs: ext2: simplify directory iteration | Felix Morgner | 1 | -2/+2 | |
| 4 days | kernel/fs: ext: remove debug code | Felix Morgner | 1 | -5/+0 | |
| 4 days | fixup! kernel/fs: ext2: add a simple write batching type | Felix Morgner | 1 | -2/+2 | |
| 4 days | kernel/fs: ext2: introduce write batching | Felix Morgner | 6 | -95/+96 | |
| 4 days | kernel/fs: ext2: add a simple write batching type | Felix Morgner | 4 | -0/+123 | |
| 4 days | kernel/fs: ext2: simplify directory iteration | Felix Morgner | 8 | -27/+282 | |
| 4 days | kernel/fs: ext2: extract stateless functions | Felix Morgner | 4 | -87/+81 | |
| 4 days | kernel/fs: ext2: cosmetic inode cleanup | Felix Morgner | 3 | -123/+160 | |
| 4 days | kernel/fs: ext2: retype block I/O operations | Felix Morgner | 2 | -30/+38 | |
| 4 days | kernel/fs: ext2: make block_count take the inode | Felix Morgner | 4 | -17/+16 | |
| 4 days | kernel/fs: ext2: cosmetic cleanup | Felix Morgner | 9 | -191/+389 | |
| 4 days | kernel/fs: extract module registrations | Felix Morgner | 7 | -52/+87 | |
| 4 days | kernel/fs: devfs: fix directory listing sentinel | Felix Morgner | 1 | -1/+2 | |
| The previous sentinel value would have prevent a device with major:minor 255:255 from showing up, if the read buffer was small enough to just barely not read that device in one go. The new value is an actually invalid device number, so it does not preclude any devices from showing up in directory listings. | |||||
| 4 days | kernel/fs: devfs: simplify directory listing | Felix Morgner | 1 | -9/+16 | |
| 4 days | kernel/fs: remove file type | Felix Morgner | 7 | -49/+11 | |
| 4 days | kernel/fs: devfs: implement read_directory | Felix Morgner | 4 | -1/+268 | |
| 4 days | kernel/fs: introduce base read_directory API | Felix Morgner | 4 | -0/+71 | |
| 4 days | kernel/fs: small post-rework cleanup | Felix Morgner | 1 | -2/+7 | |
| 4 days | kernel/fs: rework filesystem probing | Felix Morgner | 24 | -439/+348 | |
| 4 days | kernel/fs: remove backing inode from mount | Felix Morgner | 2 | -10/+0 | |
| 4 days | kernel/fs: devfs: externalize mount state | Felix Morgner | 4 | -12/+14 | |
| 4 days | kernel/fs: devfs: simplify implementation | Felix Morgner | 2 | -35/+11 | |
| 4 days | kernel/fs: post-refactor cleanup | Felix Morgner | 7 | -78/+54 | |
| 4 days | kernel/fs: ext2: externalize mount state | Felix Morgner | 7 | -219/+340 | |
| 4 days | kernel/fs: thread driver data through public API | Felix Morgner | 15 | -56/+85 | |
| 4 days | kernel/fs: extract convenience aliases | Felix Morgner | 6 | -49/+40 | |
| 4 days | kernel/fs: prepare for driver state extraction | Felix Morgner | 16 | -51/+90 | |
| 4 days | kernel/fs: clean up API | Felix Morgner | 12 | -82/+86 | |
