Message ID | 20240124122130.288374-1-pvorel@suse.cz |
---|---|
State | Rejected |
Headers | show |
Series | [1/1] fanotify: Handle EOPNOTSUPP as TCONF | expand |
On Wed, Jan 24, 2024 at 2:21 PM Petr Vorel <pvorel@suse.cz> wrote: > > Found on kernel 6.7 (Tumbleweed) on exfat: > > tst_test.c:1669: TINFO: === Testing on exfat === > tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' > tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanoL9KLE/mntpoint fstyp=exfat flags=0 > fanotify14.c:246: TINFO: Test case 0: fanotify_init(FAN_CLASS_CONTENT | FAN_REPORT_FID, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 1: fanotify_init(FAN_CLASS_PRE_CONTENT | FAN_REPORT_FID, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 2: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with INODE_EVENTS > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 3: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_MOUNT with INODE_EVENTS > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 4: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_NAME, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 5: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID | FAN_REPORT_NAME, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 6: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_NAME, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 7: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_FID, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 8: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_FID, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_RENAME > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 9: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_ONLYDIR with FAN_OPEN > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > fanotify14.c:246: TINFO: Test case 10: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME_TARGET, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_DELETE > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > fanotify14.c:303: TBROK: fanotify_mark(5, 0x101, 0x200, ..., mntpoint/file1) unsupported: EOPNOTSUPP (95) > > Reported-by: Dominique Leuenberger <dleuenberger@suse.com> > Signed-off-by: Petr Vorel <pvorel@suse.cz> > --- > Hi, > > I wonder, if this is a bug or not. > > Kind regards, > Petr > > testcases/kernel/syscalls/fanotify/fanotify.h | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h > index e0d178bcc..dd1f5c84c 100644 > --- a/testcases/kernel/syscalls/fanotify/fanotify.h > +++ b/testcases/kernel/syscalls/fanotify/fanotify.h > @@ -47,9 +47,15 @@ static inline int safe_fanotify_mark(const char *file, const int lineno, > rval = fanotify_mark(fd, flags, mask, dfd, pathname); > > if (rval == -1) { > - tst_brk_(file, lineno, TBROK | TERRNO, > - "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > - fd, flags, mask, pathname); > + if (errno == EOPNOTSUPP) { > + tst_brk_(file, lineno, TCONF | TERRNO, > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) unsupported", > + fd, flags, mask, pathname); > + } else { > + tst_brk_(file, lineno, TBROK | TERRNO, > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > + fd, flags, mask, pathname); > + } > } > > if (rval < -1) { > -- > 2.43.0 > Petr, I don't think this is the right fix. Am I correct to assume that exfat was skipped in this test prior to v6.8-rc1? 30ad1938326b fanotify: allow "weak" fsid when watching a single filesystem I have prepared a branch to test the v6.8-rc1 fanotify changes: https://github.com/amir73il/ltp/commits/fanotify_fsid/ Normally, I post the tests much later in the a release cycle, but the changes in v6.8-rc1 will cause several new filesystems (e.g. fuse-ntfs3) to start running the fanotify tests, so we may need to merge some of those test fixes sooner. Can you please test if the changes in my branch fix this test failure. Let me know if you need me to post the changes for review. As far as I can see, only the change: 35f49a9cb fanotify01: Test setting two marks on different filesystems tests for new v6.8-rc1 functionality, but it should not affect running the test on older kernels, where the affected filesystems are skipped anyway. Thanks, Amir.
> On Wed, Jan 24, 2024 at 2:21 PM Petr Vorel <pvorel@suse.cz> wrote: > > Found on kernel 6.7 (Tumbleweed) on exfat: > > tst_test.c:1669: TINFO: === Testing on exfat === > > tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' > > tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanoL9KLE/mntpoint fstyp=exfat flags=0 > > fanotify14.c:246: TINFO: Test case 0: fanotify_init(FAN_CLASS_CONTENT | FAN_REPORT_FID, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 1: fanotify_init(FAN_CLASS_PRE_CONTENT | FAN_REPORT_FID, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 2: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with INODE_EVENTS > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 3: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_MOUNT with INODE_EVENTS > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 4: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_NAME, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 5: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID | FAN_REPORT_NAME, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 6: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_NAME, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 7: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_FID, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 8: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_FID, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_RENAME > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 9: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_ONLYDIR with FAN_OPEN > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > fanotify14.c:246: TINFO: Test case 10: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME_TARGET, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_DELETE > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > fanotify14.c:303: TBROK: fanotify_mark(5, 0x101, 0x200, ..., mntpoint/file1) unsupported: EOPNOTSUPP (95) > > Reported-by: Dominique Leuenberger <dleuenberger@suse.com> > > Signed-off-by: Petr Vorel <pvorel@suse.cz> > > --- > > Hi, > > I wonder, if this is a bug or not. > > Kind regards, > > Petr > > testcases/kernel/syscalls/fanotify/fanotify.h | 12 +++++++++--- > > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h > > index e0d178bcc..dd1f5c84c 100644 > > --- a/testcases/kernel/syscalls/fanotify/fanotify.h > > +++ b/testcases/kernel/syscalls/fanotify/fanotify.h > > @@ -47,9 +47,15 @@ static inline int safe_fanotify_mark(const char *file, const int lineno, > > rval = fanotify_mark(fd, flags, mask, dfd, pathname); > > if (rval == -1) { > > - tst_brk_(file, lineno, TBROK | TERRNO, > > - "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > - fd, flags, mask, pathname); > > + if (errno == EOPNOTSUPP) { > > + tst_brk_(file, lineno, TCONF | TERRNO, > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) unsupported", > > + fd, flags, mask, pathname); > > + } else { > > + tst_brk_(file, lineno, TBROK | TERRNO, > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > + fd, flags, mask, pathname); > > + } > > } > > if (rval < -1) { > > -- > > 2.43.0 Hi Amir, > Petr, > I don't think this is the right fix. > Am I correct to assume that exfat was skipped in this test prior > to v6.8-rc1? > 30ad1938326b fanotify: allow "weak" fsid when watching a single filesystem Yes, it was skipped on 6.6: tst_test.c:1669: TINFO: === Testing on exfat === tst_test.c:1117: TINFO: Formatting /dev/loop0 with exfat opts='' extra opts='' tst_test.c:1131: TINFO: Mounting /dev/loop0 to /tmp/LTP_fany7fl22/mntpoint fstyp=exfat flags=0 fanotify14.c:323: TCONF: FAN_REPORT_FID not supported on exfat filesystem > I have prepared a branch to test the v6.8-rc1 fanotify changes: > https://github.com/amir73il/ltp/commits/fanotify_fsid/ > Normally, I post the tests much later in the a release cycle, but the changes > in v6.8-rc1 will cause several new filesystems (e.g. fuse-ntfs3) to start > running the fanotify tests, so we may need to merge some of those test > fixes sooner. +1 > Can you please test if the changes in my branch fix this test failure. > Let me know if you need me to post the changes for review. Yes, this your branch fanotify_fsid works on 6.7 from Tumbleweed. Even cherry picking the commit 3fc9493eb ("fanotify{14,15,16}: Check for filesystem mark support on filesystem") would be enough for now. I can even do it without you sending a patch, if it's ok for you (linking this discussion). Kind regards, Petr > As far as I can see, only the change: > 35f49a9cb fanotify01: Test setting two marks on different filesystems > tests for new v6.8-rc1 functionality, but it should not affect running the > test on older kernels, where the affected filesystems are skipped anyway. > Thanks, > Amir.
On Wed 24-01-24 13:21:30, Petr Vorel wrote: > Found on kernel 6.7 (Tumbleweed) on exfat: > > tst_test.c:1669: TINFO: === Testing on exfat === > tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' > tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanoL9KLE/mntpoint fstyp=exfat flags=0 > fanotify14.c:246: TINFO: Test case 0: fanotify_init(FAN_CLASS_CONTENT | FAN_REPORT_FID, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 1: fanotify_init(FAN_CLASS_PRE_CONTENT | FAN_REPORT_FID, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 2: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with INODE_EVENTS > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 3: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_MOUNT with INODE_EVENTS > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 4: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_NAME, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 5: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID | FAN_REPORT_NAME, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 6: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_NAME, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 7: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_FID, O_RDONLY) > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 8: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_FID, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_RENAME > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > fanotify14.c:246: TINFO: Test case 9: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_ONLYDIR with FAN_OPEN > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > fanotify14.c:246: TINFO: Test case 10: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME_TARGET, O_RDONLY) > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_DELETE > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > fanotify14.c:303: TBROK: fanotify_mark(5, 0x101, 0x200, ..., mntpoint/file1) unsupported: EOPNOTSUPP (95) > > Reported-by: Dominique Leuenberger <dleuenberger@suse.com> > Signed-off-by: Petr Vorel <pvorel@suse.cz> Thanks for looking into this. So EOPNOTSUPP is expected with a FAN_MARK_FILESYSTEM because exfat does not have export operations and thus cannot decode file handles (which is needed for sensible use of filesystem marks). I think we should just ignore this failure in the test. Amir? Honza > diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h > index e0d178bcc..dd1f5c84c 100644 > --- a/testcases/kernel/syscalls/fanotify/fanotify.h > +++ b/testcases/kernel/syscalls/fanotify/fanotify.h > @@ -47,9 +47,15 @@ static inline int safe_fanotify_mark(const char *file, const int lineno, > rval = fanotify_mark(fd, flags, mask, dfd, pathname); > > if (rval == -1) { > - tst_brk_(file, lineno, TBROK | TERRNO, > - "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > - fd, flags, mask, pathname); > + if (errno == EOPNOTSUPP) { > + tst_brk_(file, lineno, TCONF | TERRNO, > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) unsupported", > + fd, flags, mask, pathname); > + } else { > + tst_brk_(file, lineno, TBROK | TERRNO, > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > + fd, flags, mask, pathname); > + } > } > > if (rval < -1) { > -- > 2.43.0 >
On Wed, Jan 24, 2024 at 6:01 PM Jan Kara <jack@suse.cz> wrote: > > On Wed 24-01-24 13:21:30, Petr Vorel wrote: > > Found on kernel 6.7 (Tumbleweed) on exfat: > > > > tst_test.c:1669: TINFO: === Testing on exfat === > > tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' > > tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanoL9KLE/mntpoint fstyp=exfat flags=0 > > fanotify14.c:246: TINFO: Test case 0: fanotify_init(FAN_CLASS_CONTENT | FAN_REPORT_FID, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 1: fanotify_init(FAN_CLASS_PRE_CONTENT | FAN_REPORT_FID, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 2: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with INODE_EVENTS > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 3: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_MOUNT with INODE_EVENTS > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 4: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_NAME, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 5: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID | FAN_REPORT_NAME, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 6: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_NAME, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 7: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_FID, O_RDONLY) > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 8: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_FID, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_RENAME > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > fanotify14.c:246: TINFO: Test case 9: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_ONLYDIR with FAN_OPEN > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > fanotify14.c:246: TINFO: Test case 10: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME_TARGET, O_RDONLY) > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_DELETE > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > fanotify14.c:303: TBROK: fanotify_mark(5, 0x101, 0x200, ..., mntpoint/file1) unsupported: EOPNOTSUPP (95) > > > > Reported-by: Dominique Leuenberger <dleuenberger@suse.com> > > Signed-off-by: Petr Vorel <pvorel@suse.cz> > > Thanks for looking into this. So EOPNOTSUPP is expected with a > FAN_MARK_FILESYSTEM because exfat does not have export operations and thus > cannot decode file handles (which is needed for sensible use of filesystem > marks). > > I think we should just ignore this failure in the test. Amir? No. I already have sent patches to skip filesystem/mount marks for those filesystems. Thanks, Amir.
On Wed, Jan 24, 2024 at 5:33 PM Petr Vorel <pvorel@suse.cz> wrote: > > > On Wed, Jan 24, 2024 at 2:21 PM Petr Vorel <pvorel@suse.cz> wrote: > > > > Found on kernel 6.7 (Tumbleweed) on exfat: > > > > tst_test.c:1669: TINFO: === Testing on exfat === > > > tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' > > > tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanoL9KLE/mntpoint fstyp=exfat flags=0 > > > fanotify14.c:246: TINFO: Test case 0: fanotify_init(FAN_CLASS_CONTENT | FAN_REPORT_FID, O_RDONLY) > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > fanotify14.c:246: TINFO: Test case 1: fanotify_init(FAN_CLASS_PRE_CONTENT | FAN_REPORT_FID, O_RDONLY) > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > fanotify14.c:246: TINFO: Test case 2: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with INODE_EVENTS > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > fanotify14.c:246: TINFO: Test case 3: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, O_RDONLY) > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > fanotify14.c:283: TINFO: Testing FAN_MARK_MOUNT with INODE_EVENTS > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > fanotify14.c:246: TINFO: Test case 4: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_NAME, O_RDONLY) > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > fanotify14.c:246: TINFO: Test case 5: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID | FAN_REPORT_NAME, O_RDONLY) > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > fanotify14.c:246: TINFO: Test case 6: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_NAME, O_RDONLY) > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > fanotify14.c:246: TINFO: Test case 7: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_FID, O_RDONLY) > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > fanotify14.c:246: TINFO: Test case 8: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_FID, O_RDONLY) > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_RENAME > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > fanotify14.c:246: TINFO: Test case 9: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > fanotify14.c:283: TINFO: Testing FAN_MARK_ONLYDIR with FAN_OPEN > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > > fanotify14.c:246: TINFO: Test case 10: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME_TARGET, O_RDONLY) > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_DELETE > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > > fanotify14.c:303: TBROK: fanotify_mark(5, 0x101, 0x200, ..., mntpoint/file1) unsupported: EOPNOTSUPP (95) > > > > Reported-by: Dominique Leuenberger <dleuenberger@suse.com> > > > Signed-off-by: Petr Vorel <pvorel@suse.cz> > > > --- > > > Hi, > > > > I wonder, if this is a bug or not. > > > > Kind regards, > > > Petr > > > > testcases/kernel/syscalls/fanotify/fanotify.h | 12 +++++++++--- > > > 1 file changed, 9 insertions(+), 3 deletions(-) > > > > diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h > > > index e0d178bcc..dd1f5c84c 100644 > > > --- a/testcases/kernel/syscalls/fanotify/fanotify.h > > > +++ b/testcases/kernel/syscalls/fanotify/fanotify.h > > > @@ -47,9 +47,15 @@ static inline int safe_fanotify_mark(const char *file, const int lineno, > > > rval = fanotify_mark(fd, flags, mask, dfd, pathname); > > > > if (rval == -1) { > > > - tst_brk_(file, lineno, TBROK | TERRNO, > > > - "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > > - fd, flags, mask, pathname); > > > + if (errno == EOPNOTSUPP) { > > > + tst_brk_(file, lineno, TCONF | TERRNO, > > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) unsupported", > > > + fd, flags, mask, pathname); > > > + } else { > > > + tst_brk_(file, lineno, TBROK | TERRNO, > > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > > + fd, flags, mask, pathname); > > > + } > > > } > > > > if (rval < -1) { > > > -- > > > 2.43.0 > > > Hi Amir, > > > Petr, > > > I don't think this is the right fix. > > > Am I correct to assume that exfat was skipped in this test prior > > to v6.8-rc1? > > 30ad1938326b fanotify: allow "weak" fsid when watching a single filesystem > > Yes, it was skipped on 6.6: > > tst_test.c:1669: TINFO: === Testing on exfat === > tst_test.c:1117: TINFO: Formatting /dev/loop0 with exfat opts='' extra opts='' > tst_test.c:1131: TINFO: Mounting /dev/loop0 to /tmp/LTP_fany7fl22/mntpoint fstyp=exfat flags=0 > fanotify14.c:323: TCONF: FAN_REPORT_FID not supported on exfat filesystem > > > I have prepared a branch to test the v6.8-rc1 fanotify changes: > > > https://github.com/amir73il/ltp/commits/fanotify_fsid/ > > > Normally, I post the tests much later in the a release cycle, but the changes > > in v6.8-rc1 will cause several new filesystems (e.g. fuse-ntfs3) to start > > running the fanotify tests, so we may need to merge some of those test > > fixes sooner. > > +1 > > > Can you please test if the changes in my branch fix this test failure. > > Let me know if you need me to post the changes for review. > > Yes, this your branch fanotify_fsid works on 6.7 from Tumbleweed. Ah yes, this is because 6.7 has commit: 64343119d7b8 exportfs: support encoding non-decodeable file handles by default This is different form the one I mentioned for v6.8-rc1 > Even cherry picking the commit 3fc9493eb ("fanotify{14,15,16}: Check for > filesystem mark support on filesystem") would be enough for now. > > I can even do it without you sending a patch, if it's ok for you > (linking this discussion). > Perfectly fine by me. But note that you need the rest of the fixes to avoid test failures with fuse (e.g. fuse-ntfs3g) on v6.8-rc1 - if you care about LTP results on latest rc kernel. Thanks, Amir.
> On Wed, Jan 24, 2024 at 5:33 PM Petr Vorel <pvorel@suse.cz> wrote: > > > On Wed, Jan 24, 2024 at 2:21 PM Petr Vorel <pvorel@suse.cz> wrote: > > > > Found on kernel 6.7 (Tumbleweed) on exfat: > > > > tst_test.c:1669: TINFO: === Testing on exfat === > > > > tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' > > > > tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanoL9KLE/mntpoint fstyp=exfat flags=0 > > > > fanotify14.c:246: TINFO: Test case 0: fanotify_init(FAN_CLASS_CONTENT | FAN_REPORT_FID, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 1: fanotify_init(FAN_CLASS_PRE_CONTENT | FAN_REPORT_FID, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 2: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with INODE_EVENTS > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 3: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_MOUNT with INODE_EVENTS > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 4: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_NAME, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 5: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID | FAN_REPORT_NAME, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 6: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_NAME, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 7: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_FID, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 8: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_FID, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_RENAME > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 9: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_ONLYDIR with FAN_OPEN > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > > > fanotify14.c:246: TINFO: Test case 10: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME_TARGET, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_DELETE > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > > > fanotify14.c:303: TBROK: fanotify_mark(5, 0x101, 0x200, ..., mntpoint/file1) unsupported: EOPNOTSUPP (95) > > > > Reported-by: Dominique Leuenberger <dleuenberger@suse.com> > > > > Signed-off-by: Petr Vorel <pvorel@suse.cz> > > > > --- > > > > Hi, > > > > I wonder, if this is a bug or not. > > > > Kind regards, > > > > Petr > > > > testcases/kernel/syscalls/fanotify/fanotify.h | 12 +++++++++--- > > > > 1 file changed, 9 insertions(+), 3 deletions(-) > > > > diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h > > > > index e0d178bcc..dd1f5c84c 100644 > > > > --- a/testcases/kernel/syscalls/fanotify/fanotify.h > > > > +++ b/testcases/kernel/syscalls/fanotify/fanotify.h > > > > @@ -47,9 +47,15 @@ static inline int safe_fanotify_mark(const char *file, const int lineno, > > > > rval = fanotify_mark(fd, flags, mask, dfd, pathname); > > > > if (rval == -1) { > > > > - tst_brk_(file, lineno, TBROK | TERRNO, > > > > - "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > > > - fd, flags, mask, pathname); > > > > + if (errno == EOPNOTSUPP) { > > > > + tst_brk_(file, lineno, TCONF | TERRNO, > > > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) unsupported", > > > > + fd, flags, mask, pathname); > > > > + } else { > > > > + tst_brk_(file, lineno, TBROK | TERRNO, > > > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > > > + fd, flags, mask, pathname); > > > > + } > > > > } > > > > if (rval < -1) { > > > > -- > > > > 2.43.0 > > Hi Amir, > > > Petr, > > > I don't think this is the right fix. > > > Am I correct to assume that exfat was skipped in this test prior > > > to v6.8-rc1? > > > 30ad1938326b fanotify: allow "weak" fsid when watching a single filesystem > > Yes, it was skipped on 6.6: > > tst_test.c:1669: TINFO: === Testing on exfat === > > tst_test.c:1117: TINFO: Formatting /dev/loop0 with exfat opts='' extra opts='' > > tst_test.c:1131: TINFO: Mounting /dev/loop0 to /tmp/LTP_fany7fl22/mntpoint fstyp=exfat flags=0 > > fanotify14.c:323: TCONF: FAN_REPORT_FID not supported on exfat filesystem > > > I have prepared a branch to test the v6.8-rc1 fanotify changes: > > > https://github.com/amir73il/ltp/commits/fanotify_fsid/ > > > Normally, I post the tests much later in the a release cycle, but the changes > > > in v6.8-rc1 will cause several new filesystems (e.g. fuse-ntfs3) to start > > > running the fanotify tests, so we may need to merge some of those test > > > fixes sooner. > > +1 > > > Can you please test if the changes in my branch fix this test failure. > > > Let me know if you need me to post the changes for review. > > Yes, this your branch fanotify_fsid works on 6.7 from Tumbleweed. > Ah yes, this is because 6.7 has commit: > 64343119d7b8 exportfs: support encoding non-decodeable file handles by default > This is different form the one I mentioned for v6.8-rc1 > > Even cherry picking the commit 3fc9493eb ("fanotify{14,15,16}: Check for > > filesystem mark support on filesystem") would be enough for now. > > I can even do it without you sending a patch, if it's ok for you > > (linking this discussion). > Perfectly fine by me. > But note that you need the rest of the fixes to avoid test failures with > fuse (e.g. fuse-ntfs3g) on v6.8-rc1 - if you care about LTP results on > latest rc kernel. OK, in that case I merge whole branch tonight. Kind regards, Petr > Thanks, > Amir.
> On Wed, Jan 24, 2024 at 5:33 PM Petr Vorel <pvorel@suse.cz> wrote: > > > On Wed, Jan 24, 2024 at 2:21 PM Petr Vorel <pvorel@suse.cz> wrote: > > > > Found on kernel 6.7 (Tumbleweed) on exfat: > > > > tst_test.c:1669: TINFO: === Testing on exfat === > > > > tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' > > > > tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanoL9KLE/mntpoint fstyp=exfat flags=0 > > > > fanotify14.c:246: TINFO: Test case 0: fanotify_init(FAN_CLASS_CONTENT | FAN_REPORT_FID, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 1: fanotify_init(FAN_CLASS_PRE_CONTENT | FAN_REPORT_FID, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 2: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with INODE_EVENTS > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 3: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_MOUNT with INODE_EVENTS > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 4: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_NAME, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 5: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID | FAN_REPORT_NAME, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 6: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_NAME, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 7: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_FID, O_RDONLY) > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 8: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_FID, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_RENAME > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > > fanotify14.c:246: TINFO: Test case 9: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_ONLYDIR with FAN_OPEN > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > > > fanotify14.c:246: TINFO: Test case 10: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME_TARGET, O_RDONLY) > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_DELETE > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > > > fanotify14.c:303: TBROK: fanotify_mark(5, 0x101, 0x200, ..., mntpoint/file1) unsupported: EOPNOTSUPP (95) > > > > Reported-by: Dominique Leuenberger <dleuenberger@suse.com> > > > > Signed-off-by: Petr Vorel <pvorel@suse.cz> > > > > --- > > > > Hi, > > > > I wonder, if this is a bug or not. > > > > Kind regards, > > > > Petr > > > > testcases/kernel/syscalls/fanotify/fanotify.h | 12 +++++++++--- > > > > 1 file changed, 9 insertions(+), 3 deletions(-) > > > > diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h > > > > index e0d178bcc..dd1f5c84c 100644 > > > > --- a/testcases/kernel/syscalls/fanotify/fanotify.h > > > > +++ b/testcases/kernel/syscalls/fanotify/fanotify.h > > > > @@ -47,9 +47,15 @@ static inline int safe_fanotify_mark(const char *file, const int lineno, > > > > rval = fanotify_mark(fd, flags, mask, dfd, pathname); > > > > if (rval == -1) { > > > > - tst_brk_(file, lineno, TBROK | TERRNO, > > > > - "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > > > - fd, flags, mask, pathname); > > > > + if (errno == EOPNOTSUPP) { > > > > + tst_brk_(file, lineno, TCONF | TERRNO, > > > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) unsupported", > > > > + fd, flags, mask, pathname); > > > > + } else { > > > > + tst_brk_(file, lineno, TBROK | TERRNO, > > > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > > > + fd, flags, mask, pathname); > > > > + } > > > > } > > > > if (rval < -1) { > > > > -- > > > > 2.43.0 > > Hi Amir, > > > Petr, > > > I don't think this is the right fix. > > > Am I correct to assume that exfat was skipped in this test prior > > > to v6.8-rc1? > > > 30ad1938326b fanotify: allow "weak" fsid when watching a single filesystem > > Yes, it was skipped on 6.6: > > tst_test.c:1669: TINFO: === Testing on exfat === > > tst_test.c:1117: TINFO: Formatting /dev/loop0 with exfat opts='' extra opts='' > > tst_test.c:1131: TINFO: Mounting /dev/loop0 to /tmp/LTP_fany7fl22/mntpoint fstyp=exfat flags=0 > > fanotify14.c:323: TCONF: FAN_REPORT_FID not supported on exfat filesystem > > > I have prepared a branch to test the v6.8-rc1 fanotify changes: > > > https://github.com/amir73il/ltp/commits/fanotify_fsid/ > > > Normally, I post the tests much later in the a release cycle, but the changes > > > in v6.8-rc1 will cause several new filesystems (e.g. fuse-ntfs3) to start > > > running the fanotify tests, so we may need to merge some of those test > > > fixes sooner. > > +1 > > > Can you please test if the changes in my branch fix this test failure. > > > Let me know if you need me to post the changes for review. > > Yes, this your branch fanotify_fsid works on 6.7 from Tumbleweed. > Ah yes, this is because 6.7 has commit: > 64343119d7b8 exportfs: support encoding non-decodeable file handles by default > This is different form the one I mentioned for v6.8-rc1 > > Even cherry picking the commit 3fc9493eb ("fanotify{14,15,16}: Check for > > filesystem mark support on filesystem") would be enough for now. > > I can even do it without you sending a patch, if it's ok for you > > (linking this discussion). > Perfectly fine by me. > But note that you need the rest of the fixes to avoid test failures with > fuse (e.g. fuse-ntfs3g) on v6.8-rc1 - if you care about LTP results on > latest rc kernel. NOTE: I would do care but the 2nd commit ("fanotify01: Test setting two marks on different filesystems") fails at least on 6.7.0 (see below). I'm testing whole patchset and just commit fixing "fanotify{14,15,16}" and report if more failures. I'll probably merge now just that single fixing commit. BTW we have git freeze, planning to release LTP sometimes next week. It would be great to have working even v6.8-rc1, but understand if you don't have much time for it. Kind regards, Petr # LTP_SINGLE_FS_TYPE=exfat ./fanotify01 tst_device.c:96: TINFO: Found free device 1 '/dev/loop1' tst_test.c:1709: TINFO: LTP version: 20230929-298-gc808a4732 tst_test.c:1593: TINFO: Timeout per run is 0h 00m 30s tst_supported_fs_types.c:161: TINFO: WARNING: testing only exfat tst_supported_fs_types.c:97: TINFO: Kernel supports exfat tst_supported_fs_types.c:62: TINFO: mkfs.exfat does exist tst_test.c:1669: TINFO: === Testing on exfat === tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fan1CYAik/fs_mnt fstyp=exfat flags=0 fanotify01.c:94: TINFO: Test #0: inode mark events fanotify01.c:301: TPASS: got event: mask=31 pid=10048 fd=4 fanotify01.c:301: TPASS: got event: mask=11 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=10 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=2a pid=10048 fd=5 fanotify01.c:301: TPASS: got event: mask=a pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=20 pid=10048 fd=7 fanotify01.c:301: TPASS: got event: mask=b pid=10048 fd=6 fanotify01.c:301: TPASS: got event: mask=9 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=2 pid=10048 fd=9 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=8 fanotify01.c:339: TPASS: fanotify_mark(fd_notify, 0x00000001, 0x00000008, -100, ".") returned fd 0 fanotify01.c:94: TINFO: Test #1: mount mark events fanotify01.c:301: TPASS: got event: mask=31 pid=10048 fd=4 fanotify01.c:301: TPASS: got event: mask=11 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=10 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=2a pid=10048 fd=5 fanotify01.c:301: TPASS: got event: mask=a pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=20 pid=10048 fd=7 fanotify01.c:301: TPASS: got event: mask=b pid=10048 fd=6 fanotify01.c:301: TPASS: got event: mask=9 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=2 pid=10048 fd=9 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=8 fanotify01.c:339: TPASS: fanotify_mark(fd_notify, 0x00000001, 0x00000008, -100, ".") returned fd 0 fanotify01.c:94: TINFO: Test #2: filesystem mark events fanotify01.c:301: TPASS: got event: mask=31 pid=10048 fd=4 fanotify01.c:301: TPASS: got event: mask=11 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=10 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=2a pid=10048 fd=5 fanotify01.c:301: TPASS: got event: mask=a pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=20 pid=10048 fd=7 fanotify01.c:301: TPASS: got event: mask=b pid=10048 fd=6 fanotify01.c:301: TPASS: got event: mask=9 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=2 pid=10048 fd=9 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=8 fanotify01.c:339: TPASS: fanotify_mark(fd_notify, 0x00000001, 0x00000008, -100, ".") returned fd 0 fanotify01.c:94: TINFO: Test #3: inode mark events (FAN_REPORT_FID) fanotify01.c:301: TPASS: got event: mask=31 pid=10048 fd=-1 fanotify01.c:301: TPASS: got event: mask=11 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=10 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=2a pid=10048 fd=-1 fanotify01.c:301: TPASS: got event: mask=a pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=20 pid=10048 fd=-1 fanotify01.c:301: TPASS: got event: mask=b pid=10048 fd=-1 fanotify01.c:301: TPASS: got event: mask=9 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 fanotify01.c:301: TPASS: got event: mask=2 pid=10048 fd=-1 fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-1 fanotify01.c:339: TFAIL: fanotify_mark(fd_notify, 0x00000001, 0x00000008, -100, ".") succeeded fanotify01.c:94: TINFO: Test #4: mount mark events (FAN_REPORT_FID) fanotify01.c:107: TCONF: FAN_MARK_MOUNT not supported on exfat filesystem fanotify01.c:94: TINFO: Test #5: filesystem mark events (FAN_REPORT_FID) fanotify01.c:107: TCONF: FAN_MARK_FILESYSTEM not supported on exfat filesystem Summary: passed 51 failed 1 broken 0 skipped 2 warnings 0 > Thanks, > Amir.
> > On Wed, Jan 24, 2024 at 5:33 PM Petr Vorel <pvorel@suse.cz> wrote: > > > > On Wed, Jan 24, 2024 at 2:21 PM Petr Vorel <pvorel@suse.cz> wrote: > > > > > Found on kernel 6.7 (Tumbleweed) on exfat: > > > > > tst_test.c:1669: TINFO: === Testing on exfat === > > > > > tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' > > > > > tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanoL9KLE/mntpoint fstyp=exfat flags=0 > > > > > fanotify14.c:246: TINFO: Test case 0: fanotify_init(FAN_CLASS_CONTENT | FAN_REPORT_FID, O_RDONLY) > > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > > fanotify14.c:246: TINFO: Test case 1: fanotify_init(FAN_CLASS_PRE_CONTENT | FAN_REPORT_FID, O_RDONLY) > > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > > fanotify14.c:246: TINFO: Test case 2: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with INODE_EVENTS > > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > > > fanotify14.c:246: TINFO: Test case 3: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, O_RDONLY) > > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_MOUNT with INODE_EVENTS > > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > > > fanotify14.c:246: TINFO: Test case 4: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_NAME, O_RDONLY) > > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > > fanotify14.c:246: TINFO: Test case 5: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID | FAN_REPORT_NAME, O_RDONLY) > > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > > fanotify14.c:246: TINFO: Test case 6: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_NAME, O_RDONLY) > > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > > fanotify14.c:246: TINFO: Test case 7: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_FID, O_RDONLY) > > > > > fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) > > > > > fanotify14.c:246: TINFO: Test case 8: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_FID, O_RDONLY) > > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_RENAME > > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) > > > > > fanotify14.c:246: TINFO: Test case 9: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) > > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_ONLYDIR with FAN_OPEN > > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > > > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > > > > fanotify14.c:246: TINFO: Test case 10: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME_TARGET, O_RDONLY) > > > > > fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 > > > > > fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_DELETE > > > > > fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) > > > > > fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode > > > > > fanotify14.c:303: TBROK: fanotify_mark(5, 0x101, 0x200, ..., mntpoint/file1) unsupported: EOPNOTSUPP (95) > > > > > Reported-by: Dominique Leuenberger <dleuenberger@suse.com> > > > > > Signed-off-by: Petr Vorel <pvorel@suse.cz> > > > > > --- > > > > > Hi, > > > > > I wonder, if this is a bug or not. > > > > > Kind regards, > > > > > Petr > > > > > testcases/kernel/syscalls/fanotify/fanotify.h | 12 +++++++++--- > > > > > 1 file changed, 9 insertions(+), 3 deletions(-) > > > > > diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h > > > > > index e0d178bcc..dd1f5c84c 100644 > > > > > --- a/testcases/kernel/syscalls/fanotify/fanotify.h > > > > > +++ b/testcases/kernel/syscalls/fanotify/fanotify.h > > > > > @@ -47,9 +47,15 @@ static inline int safe_fanotify_mark(const char *file, const int lineno, > > > > > rval = fanotify_mark(fd, flags, mask, dfd, pathname); > > > > > if (rval == -1) { > > > > > - tst_brk_(file, lineno, TBROK | TERRNO, > > > > > - "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > > > > - fd, flags, mask, pathname); > > > > > + if (errno == EOPNOTSUPP) { > > > > > + tst_brk_(file, lineno, TCONF | TERRNO, > > > > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) unsupported", > > > > > + fd, flags, mask, pathname); > > > > > + } else { > > > > > + tst_brk_(file, lineno, TBROK | TERRNO, > > > > > + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", > > > > > + fd, flags, mask, pathname); > > > > > + } > > > > > } > > > > > if (rval < -1) { > > > > > -- > > > > > 2.43.0 > > > Hi Amir, > > > > Petr, > > > > I don't think this is the right fix. > > > > Am I correct to assume that exfat was skipped in this test prior > > > > to v6.8-rc1? > > > > 30ad1938326b fanotify: allow "weak" fsid when watching a single filesystem > > > Yes, it was skipped on 6.6: > > > tst_test.c:1669: TINFO: === Testing on exfat === > > > tst_test.c:1117: TINFO: Formatting /dev/loop0 with exfat opts='' extra opts='' > > > tst_test.c:1131: TINFO: Mounting /dev/loop0 to /tmp/LTP_fany7fl22/mntpoint fstyp=exfat flags=0 > > > fanotify14.c:323: TCONF: FAN_REPORT_FID not supported on exfat filesystem > > > > I have prepared a branch to test the v6.8-rc1 fanotify changes: > > > > https://github.com/amir73il/ltp/commits/fanotify_fsid/ > > > > Normally, I post the tests much later in the a release cycle, but the changes > > > > in v6.8-rc1 will cause several new filesystems (e.g. fuse-ntfs3) to start > > > > running the fanotify tests, so we may need to merge some of those test > > > > fixes sooner. > > > +1 > > > > Can you please test if the changes in my branch fix this test failure. > > > > Let me know if you need me to post the changes for review. > > > Yes, this your branch fanotify_fsid works on 6.7 from Tumbleweed. > > Ah yes, this is because 6.7 has commit: > > 64343119d7b8 exportfs: support encoding non-decodeable file handles by default > > This is different form the one I mentioned for v6.8-rc1 > > > Even cherry picking the commit 3fc9493eb ("fanotify{14,15,16}: Check for > > > filesystem mark support on filesystem") would be enough for now. > > > I can even do it without you sending a patch, if it's ok for you > > > (linking this discussion). > > Perfectly fine by me. > > But note that you need the rest of the fixes to avoid test failures with > > fuse (e.g. fuse-ntfs3g) on v6.8-rc1 - if you care about LTP results on > > latest rc kernel. > NOTE: I would do care but the 2nd commit ("fanotify01: Test setting two marks on > different filesystems") fails at least on 6.7.0 (see below). I'm testing whole > patchset and just commit fixing "fanotify{14,15,16}" and report if more > failures. I'll probably merge now just that single fixing commit. Due these problems I merged the other patches (all but these 2 which touched fanotify01). Thanks! Kind regards, Petr > BTW we have git freeze, planning to release LTP sometimes next week. It would be > great to have working even v6.8-rc1, but understand if you don't have much time > for it. > Kind regards, > Petr > # LTP_SINGLE_FS_TYPE=exfat ./fanotify01 > tst_device.c:96: TINFO: Found free device 1 '/dev/loop1' > tst_test.c:1709: TINFO: LTP version: 20230929-298-gc808a4732 > tst_test.c:1593: TINFO: Timeout per run is 0h 00m 30s > tst_supported_fs_types.c:161: TINFO: WARNING: testing only exfat > tst_supported_fs_types.c:97: TINFO: Kernel supports exfat > tst_supported_fs_types.c:62: TINFO: mkfs.exfat does exist > tst_test.c:1669: TINFO: === Testing on exfat === > tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' > tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fan1CYAik/fs_mnt fstyp=exfat flags=0 > fanotify01.c:94: TINFO: Test #0: inode mark events > fanotify01.c:301: TPASS: got event: mask=31 pid=10048 fd=4 > fanotify01.c:301: TPASS: got event: mask=11 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=10 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=2a pid=10048 fd=5 > fanotify01.c:301: TPASS: got event: mask=a pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=20 pid=10048 fd=7 > fanotify01.c:301: TPASS: got event: mask=b pid=10048 fd=6 > fanotify01.c:301: TPASS: got event: mask=9 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=2 pid=10048 fd=9 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=8 > fanotify01.c:339: TPASS: fanotify_mark(fd_notify, 0x00000001, 0x00000008, -100, ".") returned fd 0 > fanotify01.c:94: TINFO: Test #1: mount mark events > fanotify01.c:301: TPASS: got event: mask=31 pid=10048 fd=4 > fanotify01.c:301: TPASS: got event: mask=11 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=10 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=2a pid=10048 fd=5 > fanotify01.c:301: TPASS: got event: mask=a pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=20 pid=10048 fd=7 > fanotify01.c:301: TPASS: got event: mask=b pid=10048 fd=6 > fanotify01.c:301: TPASS: got event: mask=9 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=2 pid=10048 fd=9 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=8 > fanotify01.c:339: TPASS: fanotify_mark(fd_notify, 0x00000001, 0x00000008, -100, ".") returned fd 0 > fanotify01.c:94: TINFO: Test #2: filesystem mark events > fanotify01.c:301: TPASS: got event: mask=31 pid=10048 fd=4 > fanotify01.c:301: TPASS: got event: mask=11 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=10 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=2a pid=10048 fd=5 > fanotify01.c:301: TPASS: got event: mask=a pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=20 pid=10048 fd=7 > fanotify01.c:301: TPASS: got event: mask=b pid=10048 fd=6 > fanotify01.c:301: TPASS: got event: mask=9 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=2 pid=10048 fd=9 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=8 > fanotify01.c:339: TPASS: fanotify_mark(fd_notify, 0x00000001, 0x00000008, -100, ".") returned fd 0 > fanotify01.c:94: TINFO: Test #3: inode mark events (FAN_REPORT_FID) > fanotify01.c:301: TPASS: got event: mask=31 pid=10048 fd=-1 > fanotify01.c:301: TPASS: got event: mask=11 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=10 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=2a pid=10048 fd=-1 > fanotify01.c:301: TPASS: got event: mask=a pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=20 pid=10048 fd=-1 > fanotify01.c:301: TPASS: got event: mask=b pid=10048 fd=-1 > fanotify01.c:301: TPASS: got event: mask=9 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-2 > fanotify01.c:301: TPASS: got event: mask=2 pid=10048 fd=-1 > fanotify01.c:301: TPASS: got event: mask=8 pid=10048 fd=-1 > fanotify01.c:339: TFAIL: fanotify_mark(fd_notify, 0x00000001, 0x00000008, -100, ".") succeeded > fanotify01.c:94: TINFO: Test #4: mount mark events (FAN_REPORT_FID) > fanotify01.c:107: TCONF: FAN_MARK_MOUNT not supported on exfat filesystem > fanotify01.c:94: TINFO: Test #5: filesystem mark events (FAN_REPORT_FID) > fanotify01.c:107: TCONF: FAN_MARK_FILESYSTEM not supported on exfat filesystem > Summary: > passed 51 > failed 1 > broken 0 > skipped 2 > warnings 0 > > Thanks, > > Amir.
> > > But note that you need the rest of the fixes to avoid test failures with > > > fuse (e.g. fuse-ntfs3g) on v6.8-rc1 - if you care about LTP results on > > > latest rc kernel. > > > NOTE: I would do care but the 2nd commit ("fanotify01: Test setting two marks on > > different filesystems") fails at least on 6.7.0 (see below). I'm testing whole > > patchset and just commit fixing "fanotify{14,15,16}" and report if more > > failures. I'll probably merge now just that single fixing commit. > > Due these problems I merged the other patches (all but these 2 which touched > fanotify01). I think this was the right choice for code freeze, because the fanotify01 commit is for testing new functionality. However, if I am not mistaken, regardless of the new addition in fanotify01, you will also get test failures on v6.8-rc1 when running with LTP_DEV_FS_TYPE=exfat. I pushed another fix to fanotify_fsid branch: 3cc948c92 fanotify{01,09,10}: Check for report fid support with mount mark Similar to the fix for tests fanotify{14,15,16} which are run on all_filesystems. I also fixed the problem you reported with exfat on fanotify01 in the commit introducing the extra check. I will post it for review, since I now tested it on v6.8-rc1. Thanks, Amir.
diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h index e0d178bcc..dd1f5c84c 100644 --- a/testcases/kernel/syscalls/fanotify/fanotify.h +++ b/testcases/kernel/syscalls/fanotify/fanotify.h @@ -47,9 +47,15 @@ static inline int safe_fanotify_mark(const char *file, const int lineno, rval = fanotify_mark(fd, flags, mask, dfd, pathname); if (rval == -1) { - tst_brk_(file, lineno, TBROK | TERRNO, - "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", - fd, flags, mask, pathname); + if (errno == EOPNOTSUPP) { + tst_brk_(file, lineno, TCONF | TERRNO, + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) unsupported", + fd, flags, mask, pathname); + } else { + tst_brk_(file, lineno, TBROK | TERRNO, + "fanotify_mark(%d, 0x%x, 0x%lx, ..., %s) failed", + fd, flags, mask, pathname); + } } if (rval < -1) {
Found on kernel 6.7 (Tumbleweed) on exfat: tst_test.c:1669: TINFO: === Testing on exfat === tst_test.c:1117: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts='' tst_test.c:1131: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanoL9KLE/mntpoint fstyp=exfat flags=0 fanotify14.c:246: TINFO: Test case 0: fanotify_init(FAN_CLASS_CONTENT | FAN_REPORT_FID, O_RDONLY) fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) fanotify14.c:246: TINFO: Test case 1: fanotify_init(FAN_CLASS_PRE_CONTENT | FAN_REPORT_FID, O_RDONLY) fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) fanotify14.c:246: TINFO: Test case 2: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with INODE_EVENTS fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) fanotify14.c:246: TINFO: Test case 3: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, O_RDONLY) fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 fanotify14.c:283: TINFO: Testing FAN_MARK_MOUNT with INODE_EVENTS fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) fanotify14.c:246: TINFO: Test case 4: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_NAME, O_RDONLY) fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) fanotify14.c:246: TINFO: Test case 5: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID | FAN_REPORT_NAME, O_RDONLY) fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) fanotify14.c:246: TINFO: Test case 6: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_NAME, O_RDONLY) fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) fanotify14.c:246: TINFO: Test case 7: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_TARGET_FID | FAN_REPORT_DFID_FID, O_RDONLY) fanotify14.c:260: TPASS: fanotify_init(tc->init.flags, O_RDONLY) : EINVAL (22) fanotify14.c:246: TINFO: Test case 8: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_FID, O_RDONLY) fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_RENAME fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : EINVAL (22) fanotify14.c:246: TINFO: Test case 9: fanotify_init(FAN_CLASS_NOTIF, O_RDONLY) fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 fanotify14.c:283: TINFO: Testing FAN_MARK_ONLYDIR with FAN_OPEN fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode fanotify14.c:246: TINFO: Test case 10: fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME_TARGET, O_RDONLY) fanotify14.c:263: TPASS: fanotify_init(tc->init.flags, O_RDONLY) returned fd 5 fanotify14.c:283: TINFO: Testing FAN_MARK_INODE with FAN_DELETE fanotify14.c:285: TPASS: fanotify_mark(fanotify_fd, 0x00000001 | tc->mark.flags, tc->mask.flags, dirfd, path) : ENOTDIR (20) fanotify14.c:298: TPASS: Adding an inode mark on directory did not fail with ENOTDIR error as on non-dir inode fanotify14.c:303: TBROK: fanotify_mark(5, 0x101, 0x200, ..., mntpoint/file1) unsupported: EOPNOTSUPP (95) Reported-by: Dominique Leuenberger <dleuenberger@suse.com> Signed-off-by: Petr Vorel <pvorel@suse.cz> --- Hi, I wonder, if this is a bug or not. Kind regards, Petr testcases/kernel/syscalls/fanotify/fanotify.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)