Revision as of 18:07, 20 August 2010 by Sandeen
EXT4 TODO list
- Better recovery from a bad per-transaction checksum in the journal
- Teach e2fsck to request permission to skip a bad transaction, but to replay subsequent transactions, and then force a full fsck afterwards. (If we are lucky the subsequent transactions will contain newer versions of the blocks that were skipped when the transaction with the bad checksum was skipped.)
- Add per-block checksums in the journal.
- test journal checksums under power fail conditions so we can turn it on by default
- Lazy inode table ininitialization code (to speed up mke2fs)
- Add inode checksums in the inode table (another way to speed up mke2fs; also useful for detecting when a disk writes an inode table block to the wrong part of disk)
- Improve on-line resize
- Need a new ioctl that can support adding multiple block groups at a time, so we can lay out new block groups that respects flex_bg.
- Add support for meta_bg resizing, which is needed to support 64-bit block resizing
- SSD Trim support (we should test using OCZ Vertex and Intel X25-M)
- Improve merging of adjacent extents in the extent tree (i.e., both to the left and to the right)
- Investigate better code factorization in all of the places that manipulate the extent tree (ext4_get_blocks, fallocate, direct I/O, uninit-to-init conversion code)
- Defragmentation support
- Audit and clean up existing code
- Add interfaces to control block allocation decisions to kernel (other users for this functionality? boot speedup, package installation, fancy database code, etc. This may impact how we design this interface if it becomes more than just an internal defrag interface)
- Make defrag userspace code smart enough to use this to make holistic defrag decisions and be able to defrag free space, not just reduce the number of contiguous extents in a file.
- Patches from Lustre
- MMP -- Prevent multiple mounts as a last-ditch failsafe when HA management software goes insane when STONITH fails, etc. (shipping to Lustre Customers)
- Large Extended Attributes (shipping to Lustre Customers)
- flexible storage of new metadata in directories
- journal-guided RAID resync
- badness inode hueristic for e2fsck