Re: [PATCH 16/39] libxfs: add configure option to override system header fsxattr

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

 



On Tue, Oct 25, 2016 at 04:05:17PM -0700, Darrick J. Wong wrote:
> By default, libxfs will use the kernel/system headers to define struct
> fsxattr.  Unfortunately, this creates a problem for developers who are
> writing new features but building xfsprogs on a stable system, because
> the stable kernel's headers don't reflect the new feature.  In this
> case, we want to be able to use the internal fsxattr definition while
> the kernel headers catch up, so provide some configure magic to allow
> developers to force the use of the internal definition.
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
....
>  #include <stdio.h>
>  #include <asm/types.h>
>  #include <mntent.h>
> +#ifdef OVERRIDE_SYSTEM_FSXATTR
> +# define fsxattr sys_fsxattr
> +#endif
>  #include <linux/fs.h> /* fsxattr defintion for new kernels */
> +#ifdef OVERRIDE_SYSTEM_FSXATTR
> +# undef fsxattr
> +#endif

messy, but I can't think of a cleaner way of doing this.
>  
>  static __inline__ int xfsctl(const char *path, int fd, int cmd, void *p)
>  {
> @@ -175,7 +181,7 @@ static inline void platform_mntent_close(struct mntent_cursor * cursor)
>   * are a copy of the definitions moved to linux/uapi/fs.h in the 4.5 kernel,
>   * so this is purely for supporting builds against old kernel headers.
>   */
> -#ifndef FS_IOC_FSGETXATTR
> +#if !defined FS_IOC_FSGETXATTR || defined OVERRIDE_SYSTEM_FSXATTR
>  struct fsxattr {
>  	__u32		fsx_xflags;	/* xflags field value (get/set) */
>  	__u32		fsx_extsize;	/* extsize field value (get/set)*/
> @@ -184,7 +190,9 @@ struct fsxattr {
>  	__u32		fsx_cowextsize;	/* cow extsize field value (get/set) */
>  	unsigned char	fsx_pad[8];
>  };
> +#endif
>  
> +#ifndef FS_IOC_FSGETXATTR
>  /*
>   * Flags for the fsx_xflags field
>   */

Hmmm - what happens if all we are doing is introducing new flags?
Doesn't the overide need to cover them as well?

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux