This patch set adds the infrastructure to support threading to libext2fs. It makes the unix_io I/O Manager thread-aware. Wang's parallel bitmap code has been adapted to use the new threading infrastructure. The code has been tested with TSAN and ASAN built into gcc 10.2: configure 'CFLAGS=-g -fsanitize=thread' 'LDFLAGS=-fsanitize=thread' make clean ; make -j16 ; make -j16 check configure 'CFLAGS=-g -fsanitize=address' 'LDFLAGS=-fsanitize=address' make clean ; make -j16 ; make -j16 check As I needed to excerpt out some of the changes to generated patches in "Add configure and build support for the pthreads", the full patch series can be found in git: git fetch https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git pthreads Theodore Ts'o (4): Add configure and build support for the pthreads library libext2fs: add threading support to the I/O manager abstraction libext2fs: allow the unix_io manager's cache to be disabled and re-enabled Enable threaded support for e2fsprogs' applications. Wang Shilong (1): ext2fs: parallel bitmap loading MCONFIG.in | 12 +- aclocal.m4 | 486 ++++++++++++++++++++++++ configure | 814 ++++++++++++++++++++++++++++++++++++---- configure.ac | 24 ++ debugfs/debugfs.c | 6 +- e2fsck/unix.c | 2 +- lib/config.h.in | 351 +---------------- lib/ext2fs/ext2_io.h | 3 + lib/ext2fs/ext2fs.h | 9 + lib/ext2fs/openfs.c | 2 + lib/ext2fs/rw_bitmaps.c | 323 +++++++++++++--- lib/ext2fs/test_io.c | 6 +- lib/ext2fs/undo_io.c | 2 + lib/ext2fs/unix_io.c | 156 +++++++- misc/dumpe2fs.c | 2 +- misc/e2freefrag.c | 2 +- misc/e2fuzz.c | 4 +- misc/e2image.c | 3 +- misc/fuse2fs.c | 3 +- misc/tune2fs.c | 3 +- resize/main.c | 2 +- 21 files changed, 1719 insertions(+), 496 deletions(-) -- 2.28.0