From: Petr Vorel <pvorel@suse.cz>
To: Jan Kara <jack@suse.cz>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH] fanotify: Fix broken tests due to fanotify_events_supported_by_kernel()
Date: Mon, 27 Nov 2023 23:07:13 +0100 [thread overview]
Message-ID: <20231127220713.GA292630@pevik> (raw)
In-Reply-To: <20231127182602.p5tx5hvinsobw3xb@quack3>
Hi Jan, Amir,
> On Mon 27-11-23 19:40:14, Amir Goldstein wrote:
> > On Mon, Nov 27, 2023 at 5:40 PM Jan Kara <jack@suse.cz> wrote:
> > > When LTP test is run with CWD in btrfs subvolume, tests like fanotify16
> > > fail with:
> > > fanotify.h:169: TBROK: fanotify_mark (3, FAN_MARK_ADD, ..., AT_FDCWD, ".") failed: EXDEV (18)
> > > This is because fanotify_events_supported_by_kernel() try to place a
> > > mark onto CWD and that is forbidden for btrfs subvolumes. Change
> > > fanotify_events_supported_by_kernel() to use "/" instead of "." which
> > > has higher chances of working for btrfs.
> > FWIW, "." in setup() is usually a tempdir (under LTP temp root)
> > So I'm not sure that "/" is a better choice than ".".
> > At least the LTP temp dir is configurable.
> > and no reason that "/" is not a btrfs subvol inside a container...
> Yeah, that's a good point. I was thinking it need not be so simple but
> wanted something to start a discussion :)
The variable is TMPDIR (all variables are printed with -h, e.g. ./fanotify01 -h).
I was expecting this would be a problem, but instead the test was broken on
Tumbleweed with the default TMPDIR value /tmp.
> > FYI, in this branch:
> > https://github.com/amir73il/ltp/commits/fanotify_fsid
FYI the first commit breaks at least vfat on fanotify13
# LTP_SINGLE_FS_TYPE=vfat ./fanotify13
...
tst_test.c:1650: TINFO: === Testing on vfat ===
tst_test.c:1105: TINFO: Formatting /dev/loop1 with vfat opts='' extra opts=''
tst_test.c:1119: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanM9wLom/mntpoint fstyp=vfat flags=0
fanotify13.c:152: TINFO: Test #0.1: FAN_REPORT_FID with mark flag: FAN_MARK_INODE
fanotify13.c:157: TCONF: overlayfs not supported on vfat
fanotify13.c:152: TINFO: Test #1.1: FAN_REPORT_FID with mark flag: FAN_MARK_INODE
fanotify13.c:157: TCONF: overlayfs not supported on vfat
fanotify13.c:152: TINFO: Test #2.1: FAN_REPORT_FID with mark flag: FAN_MARK_MOUNT
fanotify13.c:157: TCONF: overlayfs not supported on vfat
fanotify13.c:152: TINFO: Test #3.1: FAN_REPORT_FID with mark flag: FAN_MARK_MOUNT
fanotify13.c:157: TCONF: overlayfs not supported on vfat
fanotify13.c:152: TINFO: Test #4.1: FAN_REPORT_FID with mark flag: FAN_MARK_FILESYSTEM
fanotify13.c:157: TCONF: overlayfs not supported on vfat
fanotify13.c:152: TINFO: Test #5.1: FAN_REPORT_FID with mark flag: FAN_MARK_FILESYSTEM
fanotify13.c:157: TCONF: overlayfs not supported on vfat
tst_device.c:408: TINFO: umount('mntpoint') failed with EBUSY, try 1...
tst_device.c:412: TINFO: Likely gvfsd-trash is probing newly mounted fs, kill it to speed up tests.
tst_device.c:408: TINFO: umount('mntpoint') failed with EBUSY, try 2...
tst_device.c:408: TINFO: umount('mntpoint') failed with EBUSY, try 3...
...
tst_device.c:408: TINFO: umount('mntpoint') failed with EBUSY, try 50...
tst_device.c:419: TWARN: Failed to umount('mntpoint') after 50 retries
tst_test.c:1650: TINFO: === Testing on exfat ===
tst_test.c:1105: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts=''
tst_test.c:1119: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanM9wLom/mntpoint fstyp=exfat flags=0
tst_test.c:1119: TINFO: Trying FUSE...
FUSE exfat 1.4.0 (libfuse2)
fuse: mount failed: Device or resource busy
tst_test.c:1119: TBROK: mount.exfat failed with 256
HINT: You _MAY_ be missing kernel fixes:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c285a2f01d69
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bc2473c90fca
> > I have already implemented fanotify_flags_supported_on_fs()
> > which can be used to test support for an event/mark on a specific path.
> > I did not make the change in fanotify16.c to use
> > fanotify_flags_supported_on_fs() instead of
> > fanotify_{mark,events}_supported_by_kernel() but it would be trivial to do.
> OK, this is probably a more robust idea so that we test all the features
> against a path we are then actually going to use for testing. I'll pick the
> commit "fanotify: Generalize helper fanotify_flags_supported_on_fs()" from
> your branch and rework the fix based on that tomorrow. Thanks!
Great!
Thanks a lot to you both!
Kind regards,
Petr
> Honza
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2023-11-27 22:07 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-27 15:40 [LTP] [PATCH] fanotify: Fix broken tests due to fanotify_events_supported_by_kernel() Jan Kara
2023-11-27 16:22 ` Petr Vorel
2023-11-27 17:40 ` Amir Goldstein
2023-11-27 18:26 ` Jan Kara
2023-11-27 22:07 ` Petr Vorel [this message]
2023-11-28 11:14 ` Amir Goldstein
2023-11-28 11:30 ` Petr Vorel
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=20231127220713.GA292630@pevik \
--to=pvorel@suse.cz \
--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.