Re: [PATCH 1/1] libfuse: don't put HAVE_STATX in a public header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 8/21/25 03:01, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@xxxxxxxxxx>
> 
> fuse.h and fuse_lowlevel.h are public headers, don't expose internal
> build system config variables to downstream clients.  This can also lead
> to function pointer ordering issues if (say) libfuse gets built with
> HAVE_STATX but the client program doesn't define a HAVE_STATX.
> 
> Get rid of the conditionals in the public header files to fix this.
> 
> Signed-off-by: "Darrick J. Wong" <djwong@xxxxxxxxxx>
> ---
>  include/fuse.h           |    2 --
>  include/fuse_lowlevel.h  |    2 --
>  example/memfs_ll.cc      |    2 +-
>  example/passthrough.c    |    2 +-
>  example/passthrough_fh.c |    2 +-
>  example/passthrough_ll.c |    2 +-
>  6 files changed, 4 insertions(+), 8 deletions(-)
> 
> 
> diff --git a/include/fuse.h b/include/fuse.h
> index 06feacb070fbfb..209102651e9454 100644
> --- a/include/fuse.h
> +++ b/include/fuse.h
> @@ -854,7 +854,6 @@ struct fuse_operations {
>  	 */
>  	off_t (*lseek) (const char *, off_t off, int whence, struct fuse_file_info *);
>  
> -#ifdef HAVE_STATX
>  	/**
>  	 * Get extended file attributes.
>  	 *
> @@ -865,7 +864,6 @@ struct fuse_operations {
>  	 */
>  	int (*statx)(const char *path, int flags, int mask, struct statx *stxbuf,
>  		     struct fuse_file_info *fi);
> -#endif
>  };
>  
>  /** Extra context that may be needed by some filesystems
> diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h
> index 844ee710295973..8d87be413bfe37 100644
> --- a/include/fuse_lowlevel.h
> +++ b/include/fuse_lowlevel.h
> @@ -1327,7 +1327,6 @@ struct fuse_lowlevel_ops {
>  	void (*tmpfile) (fuse_req_t req, fuse_ino_t parent,
>  			mode_t mode, struct fuse_file_info *fi);
>  
> -#ifdef HAVE_STATX
>  	/**
>  	 * Get extended file attributes.
>  	 *
> @@ -1343,7 +1342,6 @@ struct fuse_lowlevel_ops {
>  	 */
>  	void (*statx)(fuse_req_t req, fuse_ino_t ino, int flags, int mask,
>  		      struct fuse_file_info *fi);
> -#endif
>  };
>  
>  /**
> diff --git a/example/memfs_ll.cc b/example/memfs_ll.cc
> index edda34b4e43d39..7055a434a439cd 100644
> --- a/example/memfs_ll.cc
> +++ b/example/memfs_ll.cc
> @@ -6,7 +6,7 @@
>    See the file GPL2.txt.
>  */
>  
> -#define FUSE_USE_VERSION 317
> +#define FUSE_USE_VERSION FUSE_MAKE_VERSION(3, 18)
>  
>  #include <algorithm>
>  #include <stdio.h>
> diff --git a/example/passthrough.c b/example/passthrough.c
> index fdaa19e331a17d..1f09c2dc05df1e 100644
> --- a/example/passthrough.c
> +++ b/example/passthrough.c
> @@ -23,7 +23,7 @@
>   */
>  
>  
> -#define FUSE_USE_VERSION 31
> +#define FUSE_USE_VERSION FUSE_MAKE_VERSION(3, 18)
>  
>  #define _GNU_SOURCE
>  
> diff --git a/example/passthrough_fh.c b/example/passthrough_fh.c
> index 0d4fb5bd4df0d6..6403fbb74c7759 100644
> --- a/example/passthrough_fh.c
> +++ b/example/passthrough_fh.c
> @@ -23,7 +23,7 @@
>   * \include passthrough_fh.c
>   */
>  
> -#define FUSE_USE_VERSION 31
> +#define FUSE_USE_VERSION FUSE_MAKE_VERSION(3, 18)
>  
>  #define _GNU_SOURCE
>  
> diff --git a/example/passthrough_ll.c b/example/passthrough_ll.c
> index 5ca6efa2300abe..8a5ac2e9226b59 100644
> --- a/example/passthrough_ll.c
> +++ b/example/passthrough_ll.c
> @@ -35,7 +35,7 @@
>   */
>  
>  #define _GNU_SOURCE
> -#define FUSE_USE_VERSION FUSE_MAKE_VERSION(3, 12)
> +#define FUSE_USE_VERSION FUSE_MAKE_VERSION(3, 18)
>  
>  #include <fuse_lowlevel.h>
>  #include <unistd.h>
> 


Thanks, I'm going to apply it to libfuse tomorrow. I think the version
update in the examples is not strictly needed, but doesn't hurt either.


Thanks,
Bernd




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux