@@ -57,6 +57,9 @@ static long fanotify_mark(int fd, unsigned int flags, uint64_t mask,
#ifndef FAN_MARK_INODE
#define FAN_MARK_INODE 0
#endif
+#ifndef FAN_MARK_FILESYSTEM
+#define FAN_MARK_FILESYSTEM 0x00000100
+#endif
struct fanotify_mark_type {
unsigned int flag;
@@ -44,6 +44,10 @@ static struct tcase {
"mount mark events",
INIT_FANOTIFY_MARK_TYPE(MOUNT),
},
+ {
+ "filesystem mark events",
+ INIT_FANOTIFY_MARK_TYPE(FILESYSTEM),
+ },
};
static char fname[BUF_SIZE];
@@ -68,6 +72,11 @@ static void test_fanotify(unsigned int n)
if (fanotify_mark(fd_notify, FAN_MARK_ADD | mark->flag,
FAN_ACCESS | FAN_MODIFY | FAN_CLOSE | FAN_OPEN,
AT_FDCWD, fname) < 0) {
+ if (errno == EINVAL && mark->flag == FAN_MARK_FILESYSTEM) {
+ tst_res(TCONF,
+ "FAN_MARK_FILESYSTEM not supported in kernel?");
+ return;
+ }
tst_brk(TBROK | TERRNO,
"fanotify_mark (%d, FAN_MARK_ADD, FAN_ACCESS | %s | "
"FAN_MODIFY | FAN_CLOSE | FAN_OPEN, AT_FDCWD, %s) "
Signed-off-by: Amir Goldstein <amir73il@gmail.com> --- testcases/kernel/syscalls/fanotify/fanotify.h | 3 +++ testcases/kernel/syscalls/fanotify/fanotify01.c | 9 +++++++++ 2 files changed, 12 insertions(+)