All of lore.kernel.org
 help / color / mirror / Atom feed
From: Donald Douwsma <ddouwsma@redhat.com>
To: Lukas Herbolt <lukas@herbolt.com>,
	Andrey Albershteyn <aalbersh@redhat.com>
Cc: fstests@vger.kernel.org, zlang@kernel.org
Subject: Re: [PATCH] fstests Fix build errors on kernels before v5.1
Date: Thu, 23 Jul 2026 15:27:13 +1000	[thread overview]
Message-ID: <d5f276e5-a3ef-4f5e-aa68-aafeec595ee4@redhat.com> (raw)
In-Reply-To: <26d5ba218032a5468d359fb598234b99@herbolt.com>

On 23/7/26 03:49, Lukas Herbolt wrote:
> On 2026-07-22 11:35, Andrey Albershteyn wrote:
>> On 2026-07-22 07:22:58, Lukas Herbolt wrote:
>>> The FAN_REPORT_FID and fanotify_event_info_fid were introduced
>>> in v5.1. Currently there is no check if the kernel supports it
>>> making xfstests build to fail on older kernels.
>>>
>>> Fixes: 29d120e41c3d ("generic: test fsnotify filesystem error reporting")
>>>
>>> Signed-off-by: Lukas Herbolt <lukas@herbolt.com>
>>
>> Looks good to me
>> Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
>>
>>> ---
>>>  configure.ac          |  1 +
>>>  include/builddefs.in  |  1 +
>>>  m4/package_libcdev.m4 | 14 ++++++++++++++
>>>  src/Makefile          |  6 +++++-
>>>  4 files changed, 21 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/configure.ac b/configure.ac
>>> index 441f543c6089..feb24ddd8854 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -74,6 +74,7 @@ AC_NEED_INTERNAL_XFS_IOC_EXCHANGE_RANGE
>>>  AC_HAVE_FICLONE
>>>  AC_HAVE_TRIVIAL_AUTO_VAR_INIT
>>>  AC_HAVE_FILE_GETATTR
>>> +AC_HAVE_FANOTIFY_FID
>>>
>>>  AC_CHECK_FUNCS([renameat2])
>>>  AC_CHECK_FUNCS([reallocarray])
>>> diff --git a/include/builddefs.in b/include/builddefs.in
>>> index 708d75b24d76..8e9e2e3b4113 100644
>>> --- a/include/builddefs.in
>>> +++ b/include/builddefs.in
>>> @@ -75,6 +75,7 @@ HAVE_RLIMIT_NOFILE = @have_rlimit_nofile@
>>>  NEED_INTERNAL_XFS_IOC_EXCHANGE_RANGE = @need_internal_xfs_ioc_exchange_range@
>>>  HAVE_FICLONE = @have_ficlone@
>>>  HAVE_FILE_GETATTR = @have_file_getattr@
>>> +HAVE_FANOTIFY_FID = @have_fanotify_fid@
>>>
>>>  GCCFLAGS = -std=gnu11 -funsigned-char -fno-strict-aliasing -Wall
>>>  SANITIZER_CFLAGS += @autovar_init_cflags@
>>> diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4
>>> index 17f57f427410..340cdad3faf9 100644
>>> --- a/m4/package_libcdev.m4
>>> +++ b/m4/package_libcdev.m4
>>> @@ -102,3 +102,17 @@ AC_DEFUN([AC_HAVE_FILE_GETATTR],
>>>         AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
>>>      AC_SUBST(have_file_getattr)
>>>    ])
>>> +
>>> +# Check if we have fanotify FID support (Linux 5.1+)
>>> +AC_DEFUN([AC_HAVE_FANOTIFY_FID],
>>> +  [ AC_MSG_CHECKING([for fanotify FID support])
>>> +    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
>>> +#include <sys/fanotify.h>
>>> +    ]], [[
>>> +       int x = FAN_REPORT_FID;
>>> +       struct fanotify_event_info_fid fid;
>>> +       (void)x; (void)fid;
>>> +    ]])],[have_fanotify_fid=yes
>>> +       AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
>>> +    AC_SUBST(have_fanotify_fid)
>>> +  ])
>>> diff --git a/src/Makefile b/src/Makefile
>>> index 31ac43b215e9..847fb168181e 100644
>>> --- a/src/Makefile
>>> +++ b/src/Makefile
>>> @@ -36,7 +36,7 @@ LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize preallo_rw_pattern_reader \
>>>      fscrypt-crypt-util bulkstat_null_ocount splice-test chprojid_fail \
>>>      detached_mounts_propagation ext4_resize t_readdir_3 splice2pipe \
>>>      uuid_ioctl t_snapshot_deleted_subvolume fiemap-fault min_dio_alignment \
>>> -    rw_hint fs-monitor
>>> +    rw_hint
>>>
>>>  EXTRA_EXECS = dmerror fill2attr fill2fs fill2fs_check scaleread.sh \
>>>            btrfs_crc32c_forged_name.py popdir.pl popattr.py \
>>> @@ -107,6 +107,10 @@ ifeq ($(HAVE_FICLONE),yes)
>>>       TARGETS += t_reflink_read_race
>>>  endif
>>>
>>> +ifeq ($(HAVE_FANOTIFY_FID),yes)
>>> +     TARGETS += fs-monitor
>> ...
>>>       LINUX_TARGETS += t_btrfs_received_uuid_ioctl
>>
>> hah just noticed that fstests "supports" different targets (darwin,
>> freebsd), not sure if it works at all
> 
> Ugh! Indeed that should be LINUX_TARGETS += fs-monitor
> I will send v2

I think this was mainly to allow for IRIX back when fstests ran there, the 
last of which were removed by 

bc2568f9 fstests: remove IRIX test program open_unlink

A lot of the more recent programs in TARGETS look like they wouldn't apply 
to anything outside of linux, i.e. t_ext4_dax_journal_corruption and 
t_ext4_dax_inline_corruption.

Given the use of configure to decide what to compile in it may be clearer
if this was just simplified to use TARGETS in the long term.



  reply	other threads:[~2026-07-23  5:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-22  5:22 [PATCH] fstests Fix build errors on kernels before v5.1 Lukas Herbolt
2026-07-22  9:35 ` Andrey Albershteyn
2026-07-22 17:49   ` Lukas Herbolt
2026-07-23  5:27     ` Donald Douwsma [this message]
2026-07-23  8:26       ` Andrey Albershteyn
2026-07-23 10:48         ` Lukas Herbolt
2026-07-27 18:07   ` Zorro Lang
2026-07-23  5:03 ` Donald Douwsma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d5f276e5-a3ef-4f5e-aa68-aafeec595ee4@redhat.com \
    --to=ddouwsma@redhat.com \
    --cc=aalbersh@redhat.com \
    --cc=fstests@vger.kernel.org \
    --cc=lukas@herbolt.com \
    --cc=zlang@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.