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.