[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230918123217.932179-3-max.kellermann@ionos.com>
Date: Mon, 18 Sep 2023 14:32:16 +0200
From: Max Kellermann <max.kellermann@...os.com>
To: jack@...e.cz, linux-fsdevel@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: amir73il@...il.com, max.kellermann@...os.com
Subject: [PATCH 3/4] inotify_user: add system call inotify_add_watch_at()
This implements a missing piece in the inotify API: referring to a
file by a directory file descriptor and a path name. This can be
solved in userspace currently only by doing something similar to:
int old = open(".");
fchdir(dfd);
inotify_add_watch(....);
fchdir(old);
Support for LOOKUP_EMPTY is still missing. We could add another IN_*
flag for that (which would clutter the IN_* flags list further) or
add a "flags" parameter to the new system call (which would however
duplicate features already present via special IN_* flags).
To: Jan Kara <jack@...e.cz>
Cc: Amir Goldstein <amir73il@...il.com>
To: linux-fsdevel@...r.kernel.org
To: linux-kernel@...r.kernel.org
Signed-off-by: Max Kellermann <max.kellermann@...os.com>
---
fs/notify/inotify/inotify_user.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
index b6e6f6ab21f8..8a9096c5ebb1 100644
--- a/fs/notify/inotify/inotify_user.c
+++ b/fs/notify/inotify/inotify_user.c
@@ -797,6 +797,12 @@ SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, pathname,
return do_inotify_add_watch(fd, AT_FDCWD, pathname, mask);
}
+SYSCALL_DEFINE4(inotify_add_watch_at, int, fd, int, dfd, const char __user *, pathname,
+ u32, mask)
+{
+ return do_inotify_add_watch(fd, dfd, pathname, mask);
+}
+
SYSCALL_DEFINE2(inotify_rm_watch, int, fd, __s32, wd)
{
struct fsnotify_group *group;
--
2.39.2
Powered by blists - more mailing lists