summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAmir Goldstein <amir73il@gmail.com>2020-07-08 13:11:52 +0200
committerJan Kara <jack@suse.cz>2020-07-27 21:23:36 +0200
commit08b95c338e0c5a96e47f4ca314ea1e7580ecb5d7 (patch)
tree8c5cdc0b4edfb37639789c825a818cf04239481d /fs
parentfsnotify: pass dir argument to handle_event() callback (diff)
downloadlinux-08b95c338e0c5a96e47f4ca314ea1e7580ecb5d7.tar.xz
linux-08b95c338e0c5a96e47f4ca314ea1e7580ecb5d7.zip
fanotify: remove event FAN_DIR_MODIFY
It was never enabled in uapi and its functionality is about to be superseded by events FAN_CREATE, FAN_DELETE, FAN_MOVE with group flag FAN_REPORT_NAME. Keep a place holder variable name_event instead of removing the name recording code since it will be used by the new events. Link: https://lore.kernel.org/r/20200708111156.24659-17-amir73il@gmail.com Signed-off-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs')
-rw-r--r--fs/notify/fanotify/fanotify.c9
-rw-r--r--fs/notify/fsnotify.c2
2 files changed, 3 insertions, 8 deletions
diff --git a/fs/notify/fanotify/fanotify.c b/fs/notify/fanotify/fanotify.c
index e417c64c365b..e6ba605732d7 100644
--- a/fs/notify/fanotify/fanotify.c
+++ b/fs/notify/fanotify/fanotify.c
@@ -425,6 +425,7 @@ static struct fanotify_event *fanotify_alloc_event(struct fsnotify_group *group,
gfp_t gfp = GFP_KERNEL_ACCOUNT;
struct inode *id = fanotify_fid_inode(mask, data, data_type, dir);
const struct path *path = fsnotify_data_path(data, data_type);
+ bool name_event = false;
/*
* For queues with unlimited length lost events are not expected and
@@ -442,12 +443,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 (FAN_GROUP_FLAG(group, FAN_REPORT_FID)) {
event = fanotify_alloc_fid_event(id, fsid, gfp);
@@ -528,7 +524,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 c4ac4d13e10f..f12a554be3f0 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)