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

Theodore Tso
2026-05-05T22:04:54Z

[-- Attachment #1: Type: text/plain, Size: 991 bytes --]

On Tue, May 05, 2026 at 08:58:21AM -0700, Darrick J. Wong wrote:
> Hrm. A bisect would be the best (but least conference-friendly) option
> to narrow things down.

Well, a bisect was a bit painful because I had to cherry-pick patches
so I could get a successfull build. But I did finally come up with
the guilty commit, and it's.... surprising at least to me:

commit b0bd58062bbf645942ab4f0aced3bb229f462dde
Author: Darrick J. Wong <djwong@kernel.org>
Date: Thu Aug 28 10:30:40 2025 -0700

fuse2fs: cache symlink targets in the kernel

Speed up symlinks by allowing the kernel to cache them.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>

I don't know why it made a difference, but this attached patch appears
fix the MacOS regression. Could this be a bug in MacFuse[1]? FWIW, I'm
running MacFuse 5.2.0_1 from MacPorts.

[1] https://macfuse.github.io

I could condition the patch so that we only avoid setting
FUSE_CAP_CACHE_SYMLINKS on MacOS? WDYT?

- Ted

[-- Attachment #2: 0001-Revert-fuse2fs-cache-symlink-targets-in-the-kernel.patch --]
[-- Type: text/plain, Size: 1085 bytes --]

From fb3d2fc975d17d97ed76b2ed76022462a3b329f1 Mon Sep 17 00:00:00 2001
From: Theodore Ts'o <tytso@mit.edu>
Date: Tue, 5 May 2026 23:34:53 +0200
Subject: [PATCH] Revert "fuse2fs: cache symlink targets in the kernel"

This reverts commit b0bd58062bbf645942ab4f0aced3bb229f462dde.

This commit is apparently causing fuse2fs on MacOS to fail without "-o
default_permissions". It's not clear why, but it was determined using
a git bisect, and reverting the commit addresses the regression.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
misc/fuse2fs.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c
index c46cfc23..0f9cefa6 100644
--- a/misc/fuse2fs.c
+++ b/misc/fuse2fs.c
@@ -1593,9 +1593,6 @@ static void *op_init(struct fuse_conn_info *conn,
if (ff->acl)
fuse_set_feature_flag(conn, FUSE_CAP_POSIX_ACL);
#endif
-#ifdef FUSE_CAP_CACHE_SYMLINKS
- fuse_set_feature_flag(conn, FUSE_CAP_CACHE_SYMLINKS);
-#endif
#ifdef FUSE_CAP_NO_EXPORT_SUPPORT
fuse_set_feature_flag(conn, FUSE_CAP_NO_EXPORT_SUPPORT);
#endif
--
2.50.1 (Apple Git-155)