[PATCH 0/7] fix up issues from djwong/fuse4fs-fork

Theodore Ts'o
2026-05-04T23:33:26Z

These are the patches that I've applied to the next branch to clean up
found when trying to compile e2fsprogs on MacOS and via the github's
continuous integration testing.

Note: See .github/workflows/ci.yaml; it's a good reason to get a
github account if you are doing a lot of e2fsprogs development.
If you fork my e2fsprogs repository and push your changes to your github
repo, you can get reports like the ones found here:
https://github.com/tytso/e2fsprogs/actions

Anyway, with these patches, e2fsprogs builds on MacOS (both using the
github CI and on locally on my Macbook). Unfortunately fuse2fs has
regressed in that non-root accesses are getting denied with a permission
denied on MacOS, and this worked with e2fsprogs v1.47.4. Here's a
lightly edited transcript from my Macbook Air:

% uname -a
Darwin macsyma.local 25.4.0 Darwin Kernel Version 25.4.0: Thu Mar 19 19:33:09 PDT 2026; root:xnu-12377.101.15~1/RELEASE_ARM64_T8112 arm64 arm Darwin
% ./mke2fs -Fq -t ext4 -d . /tmp/foo.img 1G
% ./fuse2fs -o allow_other /tmp/foo.img /Users/tytso/mnt
FUSE2FS (foo.img): Warning: fuse2fs does not support using the journal.
There may be file system corruption or data loss if
the file system is not gracefully unmounted.
% stat /Users/tytso/mnt/revoke.o
stat: cannot stat '/Users/tytso/mnt/revoke.o': Permission denied
% sudo stat /Users/tytso/mnt/revoke.o
File: /Users/tytso/mnt/revoke.o
Size: 29728 Blocks: 64 IO Block: 16384 regular file
Device: 55,270 Inode: 91 Links: 1
Access: (0644/-rw-r--r--) Uid: (15806/ tytso) Gid: ( 20/ staff)
Access: 2026-05-05 00:21:50.000000000 +0200
Modify: 2026-05-05 00:21:50.000000000 +0200
Change: 2026-05-05 00:21:50.000000000 +0200
Birth: -
% stat revoke.o
File: revoke.o
Size: 29728 Blocks: 64 IO Block: 4096 regular file
Device: 1,18 Inode: 851374 Links: 1
Access: (0644/-rw-r--r--) Uid: (15806/ tytso) Gid: ( 20/ staff)
Access: 2026-05-05 00:21:50.903084819 +0200
Modify: 2026-05-05 00:21:50.346338295 +0200
Change: 2026-05-05 00:21:50.346580544 +0200
Birth: 2026-05-05 00:21:50.293229053 +0200
% sum revoke.o
45116 30 revoke.o
% sum /Users/tytso/mnt/revoke.o
sum: /Users/tytso/mnt/revoke.o: Permission denied

So fuse2fs is broken on MacOS, but it's not *totally* broken, since you
can still use it as root. I'll want to fix this before updating the
master branch, but this is good enough for the next branch.

Theodore Ts'o (7):
libsupport: drop xbitops.h and define fls() if necessary
configure.ac: fix disable fuse2fs/fuse4fs by default path
libsupport: don't use bzero in cache.c
fuse[24]fs: suppress clang warnings which were breaking the github CI
libsupport: remove the LIST_HEAD macro from list.h
libsupport: fix gcc -Wall warnings
fuse2fs: fix uninitialized variable warnings

configure | 8 +++
configure.ac | 3 +
fuse4fs/Makefile.in | 18 +++---
fuse4fs/fuse4fs.c | 29 +++++++--
lib/config.h.in | 3 +
lib/support/Makefile.in | 2 +-
lib/support/cache.c | 49 ++++++++++++---
lib/support/cache.h | 2 +-
lib/support/list.h | 17 ++++--
lib/support/xbitops.h | 128 ----------------------------------------
misc/fuse2fs.c | 21 +++++++
11 files changed, 125 insertions(+), 155 deletions(-)
delete mode 100644 lib/support/xbitops.h

--
2.53.0