diff --git a/meson.build b/meson.build index 2881defd..a9378cc5 100644 --- a/meson.build +++ b/meson.build @@ -150,11 +150,17 @@ libfuse = dependency('fuse3', required: false) if libfuse.found() conf.set10('HAVE_FUSE3', true) conf.set('FUSE_USE_VERSION', 35) + if libfuse.version().version_compare('>=3.10.3') + conf.set10('HAVE_FUSE_RETURNS_DT_TYPE', true) + else + conf.set10('HAVE_FUSE_RETURNS_DT_TYPE', false) + endif else libfuse = dependency('fuse', version: '>= 2.6') if libfuse.found() conf.set10('HAVE_FUSE', true) conf.set('FUSE_USE_VERSION', 26) + conf.set10('HAVE_FUSE_RETURNS_DT_TYPE', true) endif endif diff --git a/src/bindings.c b/src/bindings.c index e417a13a..422a6229 100644 --- a/src/bindings.c +++ b/src/bindings.c @@ -939,7 +939,9 @@ static void __attribute__((destructor)) lxcfs_exit(void) void *lxcfs_fuse_init(struct fuse_conn_info *conn, void *data) { struct fuse_context *fc = fuse_get_context(); +#if HAVE_FUSE_RETURNS_DT_TYPE can_use_sys_cpu = true; +#endif has_versioned_opts = true; return fc->private_data; }