2 minutes
e2fsprogs
Overview
e2fsprogs is the essential userspace suite of tools and libraries for
*creating, checking, modifying, and repairing ext2, ext3, and ext4
filesystems. It includes utilities such as mke2fs, e2fsck, resize2fs, and
e2image. Many of these tools are built on the shared libext2fs library.
I contributed a variety of features and improvements to this project over many releases and also maintained the e2fsprogs package for Red Hat Enterprise Linux and Fedora while at Red Hat. I am no longer the maintainer following my departure from Red Hat.
75 commits · 4,483 insertions(+) · 713 deletions(-)
Notable highlights
Discard support in e2fsprogs
Modern storage devices that support TRIM/UNMAP/WRITE_SAME/ERASE operations benefit from filesystem-level discard, which informs the device about blocks that the filesystem no longer uses. This allows devices — especially SSDs and thin-provisioned storage — to manage wear leveling and reclaim space more effectively.
I added discard support into the e2fsprogs libext2fs library and extended
tools such as mke2fs and e2fsck to use it during filesystem creation and
checking, improving performance and space reclamation behavior on supported
media.
Red-Black tree bitmap representation in e2fsck
As filesystem sizes scaled into the multi-terabyte range, internal data
structures in filesystem checkers needed to scale as well. Older bitmap
representations in e2fsck could degrade to quadratic work (O(n²)) in
pathological cases, especially during the pass that processes large numbers of
inodes or blocks.
I redesigned the bitmap representation within libext2fs and e2fsck to use a
red-black tree data structure — a self-balancing binary search tree —
replacing linear bit arrays in critical paths. This change dramatically improved
memory usage and performance on large, fragmented filesystems.
QCOW2 image support in e2image
The e2image utility can create filesystem metadata snapshots that are useful
for offline analysis and recovery. With increasing filesystem sizes and sparse
layouts, raw images could be large and inefficient to transfer or store.
I implemented support for the QCOW2 disk image format in e2image, which
allows creation of compressed, sparse, and copy-on-write filesystem metadata
images. QCOW2 images stay small and efficient without requiring external
sparse-file semantics, taking advantage of QCOW2 features like compression and
space-on-demand allocation.
Bug fixes and incremental improvements
The majority of my e2fsprogs contributions are diagnostic, bug-fixing, and usability improvements across the utility suite. During my time maintaining the package for RHEL and Fedora, I identified and resolved issues exposed by new kernel features, distribution integration testing, and real-world usage.