diff mbox series

[6/6] fanotify: Convert permission events feature check to be performed on fs

Message ID 20231129115440.19100-6-jack@suse.cz
State Changes Requested
Headers show
Series fanotify: Make feature tests operate against tested path | expand

Commit Message

Jan Kara Nov. 29, 2023, 11:54 a.m. UTC
Convert feature check for availability of permission events to be
performed on the tested filesystem.

Signed-off-by: Jan Kara <jack@suse.cz>
---
 testcases/kernel/syscalls/fanotify/fanotify.h   | 5 +++--
 testcases/kernel/syscalls/fanotify/fanotify03.c | 3 +--
 testcases/kernel/syscalls/fanotify/fanotify07.c | 3 +--
 3 files changed, 5 insertions(+), 6 deletions(-)

Comments

Amir Goldstein Nov. 29, 2023, 2:54 p.m. UTC | #1
On Wed, Nov 29, 2023 at 1:54 PM Jan Kara <jack@suse.cz> wrote:
>
> Convert feature check for availability of permission events to be
> performed on the tested filesystem.
>
> Signed-off-by: Jan Kara <jack@suse.cz>

Reviewed-by: Amir Goldstein <amir73il@gmail.com>

> ---
>  testcases/kernel/syscalls/fanotify/fanotify.h   | 5 +++--
>  testcases/kernel/syscalls/fanotify/fanotify03.c | 3 +--
>  testcases/kernel/syscalls/fanotify/fanotify07.c | 3 +--
>  3 files changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h
> index 052b29a7cedc..7cd2213e17bf 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify.h
> +++ b/testcases/kernel/syscalls/fanotify/fanotify.h
> @@ -133,13 +133,14 @@ static inline int fanotify_save_fid(const char *path,
>  #define INIT_FANOTIFY_MARK_TYPE(t) \
>         { FAN_MARK_ ## t, "FAN_MARK_" #t }
>
> -static inline void require_fanotify_access_permissions_supported_by_kernel(void)
> +static inline void require_fanotify_access_permissions_supported_on_fs(
> +                                                       const char *fname)
>  {
>         int fd;
>
>         fd = SAFE_FANOTIFY_INIT(FAN_CLASS_CONTENT, O_RDONLY);
>
> -       if (fanotify_mark(fd, FAN_MARK_ADD, FAN_ACCESS_PERM, AT_FDCWD, ".") < 0) {
> +       if (fanotify_mark(fd, FAN_MARK_ADD, FAN_ACCESS_PERM, AT_FDCWD, fname) < 0) {
>                 if (errno == EINVAL) {
>                         tst_brk(TCONF | TERRNO,
>                                 "CONFIG_FANOTIFY_ACCESS_PERMISSIONS not configured in kernel?");
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify03.c b/testcases/kernel/syscalls/fanotify/fanotify03.c
> index 343ba857e1ae..028da742c76c 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify03.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify03.c
> @@ -320,11 +320,10 @@ static void test_fanotify(unsigned int n)
>
>  static void setup(void)
>  {
> -       require_fanotify_access_permissions_supported_by_kernel();
> -
>         sprintf(fname, MOUNT_PATH"/fname_%d", getpid());
>         SAFE_FILE_PRINTF(fname, "1");
>
> +       require_fanotify_access_permissions_supported_on_fs(fname);
>         filesystem_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_FILESYSTEM, fname);
>         exec_events_unsupported = fanotify_flags_supported_on_fs(FAN_CLASS_CONTENT,
>                                         0, FAN_OPEN_EXEC_PERM, fname);
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify07.c b/testcases/kernel/syscalls/fanotify/fanotify07.c
> index 396c8490eeda..34aa810c7dac 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify07.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify07.c
> @@ -189,10 +189,9 @@ static void test_fanotify(void)
>
>  static void setup(void)
>  {
> -       require_fanotify_access_permissions_supported_by_kernel();
> -
>         sprintf(fname, "fname_%d", getpid());
>         SAFE_FILE_PRINTF(fname, "%s", fname);
> +       require_fanotify_access_permissions_supported_on_fs(fname);
>  }
>
>  static void cleanup(void)
> --
> 2.35.3
>
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h
index 052b29a7cedc..7cd2213e17bf 100644
--- a/testcases/kernel/syscalls/fanotify/fanotify.h
+++ b/testcases/kernel/syscalls/fanotify/fanotify.h
@@ -133,13 +133,14 @@  static inline int fanotify_save_fid(const char *path,
 #define INIT_FANOTIFY_MARK_TYPE(t) \
 	{ FAN_MARK_ ## t, "FAN_MARK_" #t }
 
-static inline void require_fanotify_access_permissions_supported_by_kernel(void)
+static inline void require_fanotify_access_permissions_supported_on_fs(
+							const char *fname)
 {
 	int fd;
 
 	fd = SAFE_FANOTIFY_INIT(FAN_CLASS_CONTENT, O_RDONLY);
 
-	if (fanotify_mark(fd, FAN_MARK_ADD, FAN_ACCESS_PERM, AT_FDCWD, ".") < 0) {
+	if (fanotify_mark(fd, FAN_MARK_ADD, FAN_ACCESS_PERM, AT_FDCWD, fname) < 0) {
 		if (errno == EINVAL) {
 			tst_brk(TCONF | TERRNO,
 				"CONFIG_FANOTIFY_ACCESS_PERMISSIONS not configured in kernel?");
diff --git a/testcases/kernel/syscalls/fanotify/fanotify03.c b/testcases/kernel/syscalls/fanotify/fanotify03.c
index 343ba857e1ae..028da742c76c 100644
--- a/testcases/kernel/syscalls/fanotify/fanotify03.c
+++ b/testcases/kernel/syscalls/fanotify/fanotify03.c
@@ -320,11 +320,10 @@  static void test_fanotify(unsigned int n)
 
 static void setup(void)
 {
-	require_fanotify_access_permissions_supported_by_kernel();
-
 	sprintf(fname, MOUNT_PATH"/fname_%d", getpid());
 	SAFE_FILE_PRINTF(fname, "1");
 
+	require_fanotify_access_permissions_supported_on_fs(fname);
 	filesystem_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_FILESYSTEM, fname);
 	exec_events_unsupported = fanotify_flags_supported_on_fs(FAN_CLASS_CONTENT,
 					0, FAN_OPEN_EXEC_PERM, fname);
diff --git a/testcases/kernel/syscalls/fanotify/fanotify07.c b/testcases/kernel/syscalls/fanotify/fanotify07.c
index 396c8490eeda..34aa810c7dac 100644
--- a/testcases/kernel/syscalls/fanotify/fanotify07.c
+++ b/testcases/kernel/syscalls/fanotify/fanotify07.c
@@ -189,10 +189,9 @@  static void test_fanotify(void)
 
 static void setup(void)
 {
-	require_fanotify_access_permissions_supported_by_kernel();
-
 	sprintf(fname, "fname_%d", getpid());
 	SAFE_FILE_PRINTF(fname, "%s", fname);
+	require_fanotify_access_permissions_supported_on_fs(fname);
 }
 
 static void cleanup(void)