[PATCH] erofs-utils: fuse: fix compile error with older libfuse versions

Gao Xiang hsiangkao at linux.alibaba.com
Tue Aug 5 14:01:46 AEST 2025


Fixes: a43529e6c912 ("erofs-utils: fuse: kernel caching for readdir")
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
 configure.ac | 5 +++++
 fuse/main.c  | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/configure.ac b/configure.ac
index 2d42b1f..da6ae48 100644
--- a/configure.ac
+++ b/configure.ac
@@ -403,6 +403,11 @@ AS_IF([test "x$enable_fuse" != "xno"], [
       have_fuse="yes"
     ], [have_fuse="no"])
   ])
+  AC_CHECK_MEMBERS([struct fuse_file_info.cache_readdir, struct fuse_file_info.keep_cache],
+    [], [], [[
+#include <fuse.h>
+  ]])
+
   LIBS="${saved_LIBS}"
   CPPFLAGS="${saved_CPPFLAGS}"], [have_fuse="no"])
 
diff --git a/fuse/main.c b/fuse/main.c
index c754805..c129a0c 100644
--- a/fuse/main.c
+++ b/fuse/main.c
@@ -301,8 +301,12 @@ static void erofsfuse_opendir(fuse_req_t req, fuse_ino_t ino,
 	}
 
 	fi->fh = (uint64_t)vi;
+#ifdef HAVE_STRUCT_FUSE_FILE_INFO_CACHE_READDIR
 	fi->cache_readdir = 1;
+#endif
+#ifdef HAVE_STRUCT_FUSE_FILE_INFO_KEEP_CACHE
 	fi->keep_cache = 1;
+#endif
 	fuse_reply_open(req, fi);
 	return;
 
-- 
2.43.5



More information about the Linux-erofs mailing list