All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Vorel <pvorel@suse.cz>
To: Amir Goldstein <amir73il@gmail.com>
Cc: Jan Kara <jack@suse.cz>, ltp@lists.linux.it
Subject: Re: [LTP] [RFC] fanotify: avoid TCONF on btrfs on TMPDIR
Date: Fri, 11 Apr 2025 15:31:40 +0200	[thread overview]
Message-ID: <20250411133140.GA328202@pevik> (raw)
In-Reply-To: <CAOQ4uxicMYZM4kYoE0G9WsUzkEhzJs-Ecsx3sh9WyvNko4=mJQ@mail.gmail.com>

> On Tue, Apr 8, 2025 at 3:00 PM Petr Vorel <pvorel@suse.cz> wrote:
> >
> > Hi Amir, Jan,
> >
> > The subject was supposed to be "fanotify: avoid TCONF on btrfs on TMPDIR".
> >
> > Kind regards,
> > Petr
> >
> > > LTP tested on btrfs on TMPDIR is skipped with TCONF:
> > > # TMPDIR=/var/tmp ./fanotify23
> > > tst_tmpdir.c:316: TINFO: Using /var/tmp/LTP_fanzN3sOS as tmpdir (btrfs filesystem)
> > > tst_device.c:98: TINFO: Found free device 0 '/dev/loop0'
> > > tst_test.c:1194: TINFO: Formatting /dev/loop0 with ext2 opts='' extra opts=''
> > > mke2fs 1.47.0 (5-Feb-2023)
> > > tst_test.c:1206: TINFO: Mounting /dev/loop0 to /var/tmp/LTP_fanzN3sOS/fs_mnt fstyp=ext2 flags=0
> > > tst_test.c:1928: TINFO: LTP version: 20250130-190-g2c79e30c2c
> > > tst_test.c:1932: TINFO: Tested kernel: 6.14.0-3.g5e7754e-default #1 SMP PREEMPT_DYNAMIC Mon Mar 31 14:34:31 UTC 2025 (5e7754e) x86_64
> > > tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz'
> > > tst_kconfig.c:676: TINFO: CONFIG_FAULT_INJECTION kernel option detected which might slow the execution
> > > tst_test.c:1748: TINFO: Overall timeout per run is 0h 02m 00s
> > > fanotify23.c:233: TCONF: FAN_ATTRIB not supported on ext2 filesystem
> >
> > > The same is fanotify22.c
> > > fanotify22.c:296: TCONF: FAN_FS_ERROR not supported on ext4 filesystem
> >
> > > They work on tmpfs on TMPDIR:
> >
> > > # ./fanotify23
> > > tst_tmpdir.c:316: TINFO: Using /tmp/LTP_fanh6TUn4 as tmpdir (tmpfs filesystem)
> > > tst_device.c:98: TINFO: Found free device 0 '/dev/loop0'
> > > tst_test.c:1194: TINFO: Formatting /dev/loop0 with ext2 opts='' extra opts=''
> > > mke2fs 1.47.0 (5-Feb-2023)
> > > tst_test.c:1206: TINFO: Mounting /dev/loop0 to /tmp/LTP_fanh6TUn4/fs_mnt fstyp=ext2 flags=0
> > > tst_test.c:1928: TINFO: LTP version: 20250130-190-g2c79e30c2c
> > > tst_test.c:1932: TINFO: Tested kernel: 6.14.0-3.g5e7754e-default #1 SMP PREEMPT_DYNAMIC Mon Mar 31 14:34:31 UTC 2025 (5e7754e) x86_64
> > > tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz'
> > > tst_kconfig.c:676: TINFO: CONFIG_FAULT_INJECTION kernel option detected which might slow the execution
> > > tst_test.c:1748: TINFO: Overall timeout per run is 0h 02m 00s
> > > fanotify23.c:109: TPASS: FAN_MARK_ADD failed with EEXIST as expected when trying to downgrade to evictable mark
> > > fanotify23.c:72: TPASS: FAN_MARK_REMOVE failed with ENOENT as expected after empty mask
> > > fanotify23.c:155: TPASS: Got no events as expected
> > > fanotify23.c:72: TPASS: FAN_MARK_REMOVE failed with ENOENT as expected after drop_caches
> > > fanotify23.c:196: TPASS: got event: mask=4
> > > fanotify23.c:196: TPASS: got event: mask=4
> > > fanotify23.c:56: TINFO: Umounting /tmp/LTP_fanh6TUn4/fs_mnt
> > > fanotify23.c:57: TINFO: Mounting /dev/loop0 to /tmp/LTP_fanh6TUn4/fs_mnt fstyp=ext2 flags=0
> >
> > > Is there a way to avoid TCONF on btrfs?
> 
> I think that should do it:
> 
> --- a/testcases/kernel/syscalls/fanotify/fanotify22.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify22.c
> @@ -295,7 +295,7 @@ static void setup(void)
>  {
>         REQUIRE_FANOTIFY_EVENTS_SUPPORTED_ON_FS(FAN_CLASS_NOTIF|FAN_REPORT_FID,
>                                                 FAN_MARK_FILESYSTEM,
> -                                               FAN_FS_ERROR, ".");
> +                                               FAN_FS_ERROR, MOUNT_PATH);
>         pre_corrupt_fs();
> 
>         fd_notify = SAFE_FANOTIFY_INIT(FAN_CLASS_NOTIF|FAN_REPORT_FID,
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify23.c
> b/testcases/kernel/syscalls/fanotify/fanotify23.c
> index 896a8a850..26c9e87fb 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify23.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify23.c
> @@ -229,10 +229,10 @@ static void setup(void)
>  {
>         SAFE_TOUCH(TEST_FILE, 0666, NULL);
> 
> -       REQUIRE_MARK_TYPE_SUPPORTED_ON_FS(FAN_MARK_EVICTABLE, ".");
> +       REQUIRE_MARK_TYPE_SUPPORTED_ON_FS(FAN_MARK_EVICTABLE, MOUNT_PATH);
>         REQUIRE_FANOTIFY_EVENTS_SUPPORTED_ON_FS(FAN_CLASS_NOTIF|FAN_REPORT_FID,
>                                                 FAN_MARK_FILESYSTEM,
> -                                               FAN_ATTRIB, ".");
> +                                               FAN_ATTRIB, MOUNT_PATH);
> 

> --

Thanks for a hint, indeed it works. I Cced you with a patch.
https://patchwork.ozlabs.org/project/ltp/patch/20250411132955.330226-1-pvorel@suse.cz/
https://lore.kernel.org/ltp/20250411132955.330226-1-pvorel@suse.cz/

> 
> I also see a bunch of:
> 
> $ git grep 'supported_on_fs.*\"\.\"'
> fanotify01.c:   if (fanotify_flags_supported_on_fs(FAN_REPORT_FID,
> FAN_MARK_MOUNT, FAN_OPEN, ".")) {
> fanotify05.c:   fd_error_unsupported =
> fanotify_init_flags_supported_on_fs(FAN_REPORT_FD_ERROR, ".");
> fanotify11.c:   fan_report_tid_unsupported =
> fanotify_init_flags_supported_on_fs(FAN_REPORT_TID, ".");
> fanotify21.c:           fd_error_unsupported =
> fanotify_init_flags_supported_on_fs(FAN_REPORT_FD_ERROR, ".");
> 
> The first one is intentional.
> The two FAN_REPORT_FD_ERROR ones could use MOUNT_PATH,
> but I don't think that is critical.

+1, therefore I kept it the same.

Kind regards,
Petr

> There is nothing about those flags that is fs specific, so it is a
> pure kernel feature test.
> 
> The problem with fanotify{22,23} was with the flag FAN_MARK_FILESYSTEM that
> is not supported on a btrfs subvolume.
> 
> Thanks,
> Amir.

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

      reply	other threads:[~2025-04-11 13:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-08 12:55 [LTP] foo Petr Vorel
2025-04-08 13:00 ` [LTP] [RFC] fanotify: avoid TCONF on btrfs on TMPDIR Petr Vorel
2025-04-09 18:38   ` Amir Goldstein
2025-04-11 13:31     ` Petr Vorel [this message]

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=20250411133140.GA328202@pevik \
    --to=pvorel@suse.cz \
    --cc=amir73il@gmail.com \
    --cc=jack@suse.cz \
    --cc=ltp@lists.linux.it \
    /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.