[LTP] [PATCH] fanotify01: Test setting two marks on different filesystems
Petr Vorel
pvorel@suse.cz
Tue Jan 30 19:44:51 CET 2024
Hi Amir,
> On Tue, Jan 30, 2024 at 3:07 PM Petr Vorel <pvorel@suse.cz> wrote:
> > Hi Amir, Jan,
> > I was going to merge, but I suspect this does not work on TMPDIR on btrfs.
> This is a problem because the test result depends on the type of TMPDIR.
> The failure in your case is because TMPDIR is not only btrfs, but a
> btrfs subvol.
> Jan has dealt with several related fanotify tests failures lately.
> > Tested on SLE 15-SP6 (kernel 6.4), on 15-SP4 (kernel 5.14), Tumbleweed (kernel
> > 6.8.0-rc1), Alpine Linux (kernel 6.4) I get:
> > fanotify01.c:341: TFAIL: fanotify_mark(fd_notify, 0x00000001, 0x00000008, -100, ".") failed: EXDEV (18)
> > for tests #3, #4 and #5 on all filesystems.
> > Testing on other on other filesystem it works: Debian kernel 5.10, 6.1 on ext4,
> > Alpine Linux kernel 6.4 on tmpfs, Tumbleweed kernel 6.8.0-rc1 on tmpfs.
> > Should be btrfs handled differently or skipped? (below)
> > Or test EXDEV for #3, #4 and #5? (not sure how handle just half of the tests on
> > btrfs differently).
> > Kind regards,
> > Petr
> > diff --git testcases/kernel/syscalls/fanotify/fanotify01.c testcases/kernel/syscalls/fanotify/fanotify01.c
> > index ba09f309d..97ade1829 100644
> > --- testcases/kernel/syscalls/fanotify/fanotify01.c
> > +++ testcases/kernel/syscalls/fanotify/fanotify01.c
> > @@ -335,8 +335,15 @@ pass:
> > * different filesystems are supported.
> > * When tested fs has zero fsid (e.g. fuse) and events are reported
> > * with fsid+fid, watching different filesystems is not supported.
> > + * Not supported on Btrfs.
> > */
> > + if (tst_fs_type(".") == TST_BTRFS_MAGIC) {
> > + tst_res(TCONF, "skipped on Btrfs");
> > + return;
> > + }
> > +
> Note that btrfs is not the FS under test. It is the FS of TMPFS,
> so even if you did skip, this message would have been wrong.
> Please try the patch below.
Great, works as expected.
I can merge amended commit [1], or feel free to send v2 if you want to mention
btrfs subvol in the commit message.
Kind regards,
Petr
[1] https://github.com/pevik/ltp/commit/359047c97151d87b4e709bbabaaa529a31bcc50b
> Thanks,
> Amir.
> --- a/testcases/kernel/syscalls/fanotify/fanotify01.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify01.c
> @@ -364,12 +364,19 @@ static void setup(void)
> mount_mark_fid_unsupported =
> fanotify_flags_supported_on_fs(FAN_REPORT_FID,
> FAN_MARK_MOUNT,
> FAN_OPEN, fname);
> - /* When mount mark is not supported due to zero fsid, multi fs
> inode marks are not supported */
> + /*
> + * When mount mark is not supported due to zero fsid (e.g.
> fuse) or if TMPDIR has non-uniform
> + * fsid (e.g. btrfs subvol), multi fs inode marks are not supported.
> + */
> if (mount_mark_fid_unsupported && errno == ENODEV) {
> tst_res(TINFO, "filesystem %s does not support
> reporting events with fid from multi fs",
> tst_device->fs_type);
> inode_mark_fid_xdev = EXDEV;
> }
> + if (fanotify_flags_supported_on_fs(FAN_REPORT_FID,
> FAN_MARK_MOUNT, FAN_OPEN, ".")) {
> + inode_mark_fid_xdev = errno;
> + tst_res(TINFO, "TMPDIR does not support reporting
> events with fid from multi fs");
> + }
> }
More information about the ltp
mailing list