diff mbox series

[1/1] syscalls/fanotify15: TCONF also on EOPNOTSUPP

Message ID 20200910110712.2181-1-pvorel@suse.cz
State Accepted
Headers show
Series [1/1] syscalls/fanotify15: TCONF also on EOPNOTSUPP | expand

Commit Message

Petr Vorel Sept. 10, 2020, 11:07 a.m. UTC
instead of TBROK:
fanotify15.c:86: INFO: Test #0: FAN_REPORT_FID on filesystem including FAN_DELETE_SELF
fanotify15.c:96: BROK: fanotify_mark(3, FAN_MARK_ADD | FAN_MARK_FILESYSTEM, FAN_CREATE | FAN_DELETE | FAN_MOVE | FAN_MODIFY | FAN_ONDIR | 0x400, AT_FDCWD, mntpoint/test_dir) failed: EOPNOTSUPP (95)

is now reported:
fanotify15.c:86: INFO: Test #0: FAN_REPORT_FID on filesystem including FAN_DELETE_SELF
fanotify15.c:93: CONF: FAN_REPORT_FID not supported on exfat filesystem

fanotify15.c:86: INFO: Test #0: FAN_REPORT_FID on filesystem including FAN_DELETE_SELF
fanotify15.c:93: CONF: FAN_REPORT_FID not supported on ntfs filesystem

Found on 5.8.0 on openSUSE Tumbleweed.

Fixes: 403f11f3a ("syscalls/fanotify15: verify fid for dirent events")

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Hi,

I suppose that EXDEV (in fanotify_test_fid()) is really error which
should be caught as TBROK (unlike ENODEV and EOPNOTSUPP). Am I correct?

Kind regards,
Petr

 testcases/kernel/syscalls/fanotify/fanotify15.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Amir Goldstein Sept. 10, 2020, 2:05 p.m. UTC | #1
On Thu, Sep 10, 2020 at 2:07 PM Petr Vorel <pvorel@suse.cz> wrote:
>
> instead of TBROK:
> fanotify15.c:86: INFO: Test #0: FAN_REPORT_FID on filesystem including FAN_DELETE_SELF
> fanotify15.c:96: BROK: fanotify_mark(3, FAN_MARK_ADD | FAN_MARK_FILESYSTEM, FAN_CREATE | FAN_DELETE | FAN_MOVE | FAN_MODIFY | FAN_ONDIR | 0x400, AT_FDCWD, mntpoint/test_dir) failed: EOPNOTSUPP (95)
>
> is now reported:
> fanotify15.c:86: INFO: Test #0: FAN_REPORT_FID on filesystem including FAN_DELETE_SELF
> fanotify15.c:93: CONF: FAN_REPORT_FID not supported on exfat filesystem
>
> fanotify15.c:86: INFO: Test #0: FAN_REPORT_FID on filesystem including FAN_DELETE_SELF
> fanotify15.c:93: CONF: FAN_REPORT_FID not supported on ntfs filesystem
>
> Found on 5.8.0 on openSUSE Tumbleweed.
>
> Fixes: 403f11f3a ("syscalls/fanotify15: verify fid for dirent events")
>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> Hi,
>
> I suppose that EXDEV (in fanotify_test_fid()) is really error which
> should be caught as TBROK (unlike ENODEV and EOPNOTSUPP). Am I correct?

No. EXDEV is also an indication of problematic filesystem.
You will get it if you try to setup the mark on a btrfs subvolume, which is not
the root volume, because in that case the "fsid" information from event is
not reliable.

Probably this is not going to happen in LTP, but still.

Good spotting.

Thanks,
Amir.
Petr Vorel Sept. 10, 2020, 6:37 p.m. UTC | #2
Hi Amir,

> > I suppose that EXDEV (in fanotify_test_fid()) is really error which
> > should be caught as TBROK (unlike ENODEV and EOPNOTSUPP). Am I correct?

> No. EXDEV is also an indication of problematic filesystem.
> You will get it if you try to setup the mark on a btrfs subvolume, which is not
> the root volume, because in that case the "fsid" information from event is
> not reliable.

> Probably this is not going to happen in LTP, but still.
Right, I'll add also check for EXDEV and merge with your Reviewed-by tag.
Thanks for your review!

> Good spotting.

> Thanks,
> Amir.

Kind regards,
Petr
Petr Vorel Sept. 11, 2020, 5:35 a.m. UTC | #3
Hi Amir,

> On Thu, Sep 10, 2020 at 2:07 PM Petr Vorel <pvorel@suse.cz> wrote:

> > instead of TBROK:
> > fanotify15.c:86: INFO: Test #0: FAN_REPORT_FID on filesystem including FAN_DELETE_SELF
> > fanotify15.c:96: BROK: fanotify_mark(3, FAN_MARK_ADD | FAN_MARK_FILESYSTEM, FAN_CREATE | FAN_DELETE | FAN_MOVE | FAN_MODIFY | FAN_ONDIR | 0x400, AT_FDCWD, mntpoint/test_dir) failed: EOPNOTSUPP (95)

> > is now reported:
> > fanotify15.c:86: INFO: Test #0: FAN_REPORT_FID on filesystem including FAN_DELETE_SELF
> > fanotify15.c:93: CONF: FAN_REPORT_FID not supported on exfat filesystem

> > fanotify15.c:86: INFO: Test #0: FAN_REPORT_FID on filesystem including FAN_DELETE_SELF
> > fanotify15.c:93: CONF: FAN_REPORT_FID not supported on ntfs filesystem

> > Found on 5.8.0 on openSUSE Tumbleweed.

> > Fixes: 403f11f3a ("syscalls/fanotify15: verify fid for dirent events")

> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > ---
> > Hi,

> > I suppose that EXDEV (in fanotify_test_fid()) is really error which
> > should be caught as TBROK (unlike ENODEV and EOPNOTSUPP). Am I correct?

> No. EXDEV is also an indication of problematic filesystem.
> You will get it if you try to setup the mark on a btrfs subvolume, which is not
> the root volume, because in that case the "fsid" information from event is
> not reliable.

> Probably this is not going to happen in LTP, but still.

> Good spotting.

Merged commit where handling both EOPNOTSUPP and EXDEV.
Thanks!

> Thanks,
> Amir.

Kind regards,
Petr
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/fanotify/fanotify15.c b/testcases/kernel/syscalls/fanotify/fanotify15.c
index cca6a5313..6cb1b4a2f 100644
--- a/testcases/kernel/syscalls/fanotify/fanotify15.c
+++ b/testcases/kernel/syscalls/fanotify/fanotify15.c
@@ -89,7 +89,7 @@  static void do_test(unsigned int number)
 				FAN_CREATE | FAN_DELETE | FAN_MOVE |
 				FAN_MODIFY | FAN_ONDIR,
 				AT_FDCWD, TEST_DIR) == -1) {
-		if (errno == ENODEV)
+		if (errno == ENODEV || errno == EOPNOTSUPP)
 			tst_brk(TCONF,
 				"FAN_REPORT_FID not supported on %s "
 				"filesystem", tst_device->fs_type);