Linux-Fsdevel Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Amir Goldstein <amir73il@gmail.com>
To: Jan Kara <jack@suse.cz>
Cc: linux-fsdevel@vger.kernel.org
Subject: [PATCH v3 17/20] fanotify: remove event FAN_DIR_MODIFY
Date: Wed, 8 Jul 2020 14:11:52 +0300 [thread overview]
Message-ID: <20200708111156.24659-17-amir73il@gmail.com> (raw)
In-Reply-To: <20200708111156.24659-1-amir73il@gmail.com>
It was never enabled in uapi and its functionality is about to be
superseded by events FAN_CREATE, FAN_DETELE, FAN_MOVE with group
flag FAN_REPORT_NAME.
Keep a place holder variable name_event instead of removing the
name recording code.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
fs/notify/fanotify/fanotify.c | 9 ++-------
fs/notify/fsnotify.c | 2 +-
include/linux/fsnotify.h | 6 ------
include/linux/fsnotify_backend.h | 4 +---
include/uapi/linux/fanotify.h | 1 -
5 files changed, 4 insertions(+), 18 deletions(-)
diff --git a/fs/notify/fanotify/fanotify.c b/fs/notify/fanotify/fanotify.c
index 3a82ddb63196..3885bf63976b 100644
--- a/fs/notify/fanotify/fanotify.c
+++ b/fs/notify/fanotify/fanotify.c
@@ -426,6 +426,7 @@ static struct fanotify_event *fanotify_alloc_event(struct fsnotify_group *group,
struct inode *id = fanotify_fid_inode(mask, data, data_type, dir);
const struct path *path = fsnotify_data_path(data, data_type);
unsigned int fid_mode = FAN_GROUP_FLAG(group, FANOTIFY_FID_BITS);
+ bool name_event = false;
/*
* For queues with unlimited length lost events are not expected and
@@ -443,12 +444,7 @@ static struct fanotify_event *fanotify_alloc_event(struct fsnotify_group *group,
if (fanotify_is_perm_event(mask)) {
event = fanotify_alloc_perm_event(path, gfp);
- } else if (mask & FAN_DIR_MODIFY && !(WARN_ON_ONCE(!file_name))) {
- /*
- * For FAN_DIR_MODIFY event, we report the fid of the directory
- * and the name of the modified entry.
- * Allocate an fanotify_name_event struct and copy the name.
- */
+ } else if (name_event && file_name) {
event = fanotify_alloc_name_event(id, fsid, file_name, gfp);
} else if (fid_mode) {
event = fanotify_alloc_fid_event(id, fsid, gfp);
@@ -529,7 +525,6 @@ static int fanotify_handle_event(struct fsnotify_group *group, u32 mask,
BUILD_BUG_ON(FAN_MOVED_FROM != FS_MOVED_FROM);
BUILD_BUG_ON(FAN_CREATE != FS_CREATE);
BUILD_BUG_ON(FAN_DELETE != FS_DELETE);
- BUILD_BUG_ON(FAN_DIR_MODIFY != FS_DIR_MODIFY);
BUILD_BUG_ON(FAN_DELETE_SELF != FS_DELETE_SELF);
BUILD_BUG_ON(FAN_MOVE_SELF != FS_MOVE_SELF);
BUILD_BUG_ON(FAN_EVENT_ON_CHILD != FS_EVENT_ON_CHILD);
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
index e05f3b2cf664..51ada3cfd2ff 100644
--- a/fs/notify/fsnotify.c
+++ b/fs/notify/fsnotify.c
@@ -393,7 +393,7 @@ static __init int fsnotify_init(void)
{
int ret;
- BUILD_BUG_ON(HWEIGHT32(ALL_FSNOTIFY_BITS) != 26);
+ BUILD_BUG_ON(HWEIGHT32(ALL_FSNOTIFY_BITS) != 25);
ret = init_srcu_struct(&fsnotify_mark_srcu);
if (ret)
diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h
index 316c9b820517..9b2566d273a9 100644
--- a/include/linux/fsnotify.h
+++ b/include/linux/fsnotify.h
@@ -30,12 +30,6 @@ static inline void fsnotify_name(struct inode *dir, __u32 mask,
const struct qstr *name, u32 cookie)
{
fsnotify(dir, mask, child, FSNOTIFY_EVENT_INODE, name, cookie);
- /*
- * Send another flavor of the event without child inode data and
- * without the specific event type (e.g. FS_CREATE|FS_IS_DIR).
- * The name is relative to the dir inode the event is reported to.
- */
- fsnotify(dir, FS_DIR_MODIFY, dir, FSNOTIFY_EVENT_INODE, name, 0);
}
static inline void fsnotify_dirent(struct inode *dir, struct dentry *dentry,
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
index 430d131d11c6..860c847c5bfa 100644
--- a/include/linux/fsnotify_backend.h
+++ b/include/linux/fsnotify_backend.h
@@ -47,7 +47,6 @@
#define FS_OPEN_PERM 0x00010000 /* open event in an permission hook */
#define FS_ACCESS_PERM 0x00020000 /* access event in a permissions hook */
#define FS_OPEN_EXEC_PERM 0x00040000 /* open/exec event in a permission hook */
-#define FS_DIR_MODIFY 0x00080000 /* Directory entry was modified */
#define FS_EXCL_UNLINK 0x04000000 /* do not send events if object is unlinked */
/* This inode cares about things that happen to its children. Always set for
@@ -67,8 +66,7 @@
* The watching parent may get an FS_ATTRIB|FS_EVENT_ON_CHILD event
* when a directory entry inside a child subdir changes.
*/
-#define ALL_FSNOTIFY_DIRENT_EVENTS (FS_CREATE | FS_DELETE | FS_MOVE | \
- FS_DIR_MODIFY)
+#define ALL_FSNOTIFY_DIRENT_EVENTS (FS_CREATE | FS_DELETE | FS_MOVE)
#define ALL_FSNOTIFY_PERM_EVENTS (FS_OPEN_PERM | FS_ACCESS_PERM | \
FS_OPEN_EXEC_PERM)
diff --git a/include/uapi/linux/fanotify.h b/include/uapi/linux/fanotify.h
index a88c7c6d0692..7f2f17eacbf9 100644
--- a/include/uapi/linux/fanotify.h
+++ b/include/uapi/linux/fanotify.h
@@ -24,7 +24,6 @@
#define FAN_OPEN_PERM 0x00010000 /* File open in perm check */
#define FAN_ACCESS_PERM 0x00020000 /* File accessed in perm check */
#define FAN_OPEN_EXEC_PERM 0x00040000 /* File open/exec in perm check */
-#define FAN_DIR_MODIFY 0x00080000 /* Directory entry was modified */
#define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */
--
2.17.1
next prev parent reply other threads:[~2020-07-08 11:12 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-08 11:11 [PATCH v3 01/20] fsnotify: Rearrange fast path to minimise overhead when there is no watcher Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 02/20] fsnotify: fold fsnotify() call into fsnotify_parent() Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 03/20] fsnotify: return non const from fsnotify_data_inode() Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 04/20] nfsd: use fsnotify_data_inode() to get the unlinked inode Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 05/20] kernfs: do not call fsnotify() with name without a parent Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 06/20] inotify: do not use objectid when comparing events Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 07/20] fanotify: create overflow event type Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 08/20] fanotify: break up fanotify_alloc_event() Amir Goldstein
2020-07-08 16:40 ` kernel test robot
[not found] ` <202007091516.gofG28uU%lkp@intel.com>
2020-07-09 9:03 ` Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 09/20] fsnotify: pass dir argument to handle_event() callback Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 10/20] fanotify: generalize the handling of extra event flags Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 11/20] fanotify: generalize merge logic of events on dir Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 12/20] fanotify: distinguish between fid encode error and null fid Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 13/20] fanotify: generalize test for FAN_REPORT_FID Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 14/20] fanotify: mask out special event flags from ignored mask Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 15/20] fanotify: prepare for implicit event flags in mark mask Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 16/20] fanotify: use FAN_EVENT_ON_CHILD as implicit flag on sb/mount/non-dir marks Amir Goldstein
2020-07-08 11:11 ` Amir Goldstein [this message]
2020-07-08 11:11 ` [PATCH v3 18/20] fsnotify: add object type "child" to object type iterator Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 19/20] fanotify: use struct fanotify_info to parcel the variable size buffer Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 20/20] fanotify: no external fh buffer in fanotify_name_event Amir Goldstein
2020-07-15 15:34 ` Jan Kara
2020-07-15 16:05 ` Amir Goldstein
2020-07-15 16:22 ` Amir Goldstein
2020-07-15 16:24 ` Jan Kara
2020-07-15 17:44 ` Amir Goldstein
2020-07-08 11:11 ` [PATCH v3 00/20] Prep work for fanotify events with name info Amir Goldstein
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200708111156.24659-17-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--subject='Re: [PATCH v3 17/20] fanotify: remove event FAN_DIR_MODIFY' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).