Re: xfsprogs for-next branch build failure

Eryu Guan
2017-07-01T05:40:08Z

On Fri, Jun 30, 2017 at 09:45:37AM -0700, Darrick J. Wong wrote:
> On Fri, Jun 30, 2017 at 08:19:13PM +0800, Eryu Guan wrote:
> > Hi all,
> >
> > I'm seeing a xfsprogs for-next branch (HEAD is f77f9908851e) build
> > failure in my test.
> >
> > This build failure only happens if I installed 4.12-rc kernel headers,
> > which has /usr/include/linux/fsmap.h installed, so that in
> > xfsprogs/include/builddefs it has "HAVE_GETFSMAP = yes" defined.
> >
> > e.g. install Fedora rawhide kernel package and its kernel header files,
> > and re-compile xfsprogs.
> > kernel-4.12.0-0.rc6.git3.1.fc27.x86_64
> > kernel-headers-4.12.0-0.rc6.git3.1.fc27.x86_64
> >
> > Build failure log:
> >
> > ...
> > Building fsck
> > Building growfs
> > ...
> > Building io
> > ...
> > [CC] fsmap.o
> > In file included from ../include/xfs.h:68:0,
> > from io.h:19,
> > from fsmap.c:24:
> > fsmap.c: In function ‘special_owner’:
> > ../include/xfs/xfs_fs.h:117:26: error: ‘FMR_OWN_FREE’ undeclared (first use in this function)
> > #define XFS_FMR_OWN_FREE FMR_OWN_FREE /* free space */
> > ^
> > fsmap.c:61:7: note: in expansion of macro ‘XFS_FMR_OWN_FREE’
> > case XFS_FMR_OWN_FREE:
> > ^
> > ../include/xfs/xfs_fs.h:117:26: note: each undeclared identifier is reported only once for each function it appears in
> > #define XFS_FMR_OWN_FREE FMR_OWN_FREE /* free space */
> > ^
> > fsmap.c:61:7: note: in expansion of macro ‘XFS_FMR_OWN_FREE’
> > case XFS_FMR_OWN_FREE:
> > ^
> > ../include/xfs/xfs_fs.h:118:29: error: ‘FMR_OWN_UNKNOWN’ undeclared (first use in this function)
> > #define XFS_FMR_OWN_UNKNOWN FMR_OWN_UNKNOWN /* unknown owner */
> > ^
> > fsmap.c:63:7: note: in expansion of macro ‘XFS_FMR_OWN_UNKNOWN’
> > case XFS_FMR_OWN_UNKNOWN:
> > ^
> > fsmap.c:65:2: warning: implicit declaration of function ‘FMR_OWNER’ [-Wimplicit-function-declaration]
> > case XFS_FMR_OWN_FS:
> > ^
> > ...
>
> Drat, looks like we forgot to include linux/fsmap.h during the refactoring
> of the original fsmap support patch. :(
>
> Does the patch below fix it for you?

Yeah, it works!

Eryu

>
> --D
>
> diff --git a/include/linux.h b/include/linux.h
> index 92f291d..6ce344c 100644
> --- a/include/linux.h
> +++ b/include/linux.h
> @@ -222,7 +222,9 @@ struct fsxattr {
> #define FS_XFLAG_COWEXTSIZE 0x00010000 /* CoW extent size allocator hint */
> #endif
>
> -#ifndef HAVE_GETFSMAP
> +#ifdef HAVE_GETFSMAP
> +# include <linux/fsmap.h>
> +#else
> /*
> * Structure for FS_IOC_GETFSMAP.
> *