aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/notify/dnotify/dnotify.c3
-rw-r--r--fs/notify/fsnotify.c2
-rw-r--r--fs/notify/inotify/inotify_fsnotify.c3
-rw-r--r--include/linux/fsnotify_backend.h3
-rw-r--r--kernel/audit_tree.c3
-rw-r--r--kernel/audit_watch.c3
6 files changed, 11 insertions, 6 deletions
diff --git a/fs/notify/dnotify/dnotify.c b/fs/notify/dnotify/dnotify.c
index 85b97fca14d..6f30f496e23 100644
--- a/fs/notify/dnotify/dnotify.c
+++ b/fs/notify/dnotify/dnotify.c
@@ -133,7 +133,8 @@ static int dnotify_handle_event(struct fsnotify_group *group,
133 * userspace notification for that pair. 133 * userspace notification for that pair.
134 */ 134 */
135static bool dnotify_should_send_event(struct fsnotify_group *group, 135static bool dnotify_should_send_event(struct fsnotify_group *group,
136 struct inode *inode, __u32 mask) 136 struct inode *inode, __u32 mask,
137 int data_type)
137{ 138{
138 struct fsnotify_mark_entry *entry; 139 struct fsnotify_mark_entry *entry;
139 bool send; 140 bool send;
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
index fcc2f064af8..fc06e478939 100644
--- a/fs/notify/fsnotify.c
+++ b/fs/notify/fsnotify.c
@@ -157,7 +157,7 @@ void fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, const
157 idx = srcu_read_lock(&fsnotify_grp_srcu); 157 idx = srcu_read_lock(&fsnotify_grp_srcu);
158 list_for_each_entry_rcu(group, &fsnotify_groups, group_list) { 158 list_for_each_entry_rcu(group, &fsnotify_groups, group_list) {
159 if (test_mask & group->mask) { 159 if (test_mask & group->mask) {
160 if (!group->ops->should_send_event(group, to_tell, mask)) 160 if (!group->ops->should_send_event(group, to_tell, mask, data_is))
161 continue; 161 continue;
162 if (!event) { 162 if (!event) {
163 event = fsnotify_create_event(to_tell, mask, data, 163 event = fsnotify_create_event(to_tell, mask, data,
diff --git a/fs/notify/inotify/inotify_fsnotify.c b/fs/notify/inotify/inotify_fsnotify.c
index e27960cd76a..fc7c4952e6a 100644
--- a/fs/notify/inotify/inotify_fsnotify.c
+++ b/fs/notify/inotify/inotify_fsnotify.c
@@ -86,7 +86,8 @@ static void inotify_freeing_mark(struct fsnotify_mark_entry *entry, struct fsnot
86 inotify_ignored_and_remove_idr(entry, group); 86 inotify_ignored_and_remove_idr(entry, group);
87} 87}
88 88
89static bool inotify_should_send_event(struct fsnotify_group *group, struct inode *inode, __u32 mask) 89static bool inotify_should_send_event(struct fsnotify_group *group, struct inode *inode,
90 __u32 mask, int data_type)
90{ 91{
91 struct fsnotify_mark_entry *entry; 92 struct fsnotify_mark_entry *entry;
92 bool send; 93 bool send;
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
index e2528437102..61aed0c54fe 100644
--- a/include/linux/fsnotify_backend.h
+++ b/include/linux/fsnotify_backend.h
@@ -84,7 +84,8 @@ struct fsnotify_event_private_data;
84 * valid group and inode to use to clean up. 84 * valid group and inode to use to clean up.
85 */ 85 */
86struct fsnotify_ops { 86struct fsnotify_ops {
87 bool (*should_send_event)(struct fsnotify_group *group, struct inode *inode, __u32 mask); 87 bool (*should_send_event)(struct fsnotify_group *group, struct inode *inode,
88 __u32 mask, int data_type);
88 int (*handle_event)(struct fsnotify_group *group, struct fsnotify_event *event); 89 int (*handle_event)(struct fsnotify_group *group, struct fsnotify_event *event);
89 void (*free_group_priv)(struct fsnotify_group *group); 90 void (*free_group_priv)(struct fsnotify_group *group);
90 void (*freeing_mark)(struct fsnotify_mark_entry *entry, struct fsnotify_group *group); 91 void (*freeing_mark)(struct fsnotify_mark_entry *entry, struct fsnotify_group *group);
diff --git a/kernel/audit_tree.c b/kernel/audit_tree.c
index a164600dd82..b5417cd6521 100644
--- a/kernel/audit_tree.c
+++ b/kernel/audit_tree.c
@@ -919,7 +919,8 @@ static void audit_tree_freeing_mark(struct fsnotify_mark_entry *entry, struct fs
919 fsnotify_put_mark(entry); 919 fsnotify_put_mark(entry);
920} 920}
921 921
922static bool audit_tree_send_event(struct fsnotify_group *group, struct inode *inode, __u32 mask) 922static bool audit_tree_send_event(struct fsnotify_group *group, struct inode *inode,
923 __u32 mask, int data_type)
923{ 924{
924 return 0; 925 return 0;
925} 926}
diff --git a/kernel/audit_watch.c b/kernel/audit_watch.c
index f8543a41115..67d8f2f5287 100644
--- a/kernel/audit_watch.c
+++ b/kernel/audit_watch.c
@@ -505,7 +505,8 @@ void audit_remove_watch_rule(struct audit_krule *krule)
505 } 505 }
506} 506}
507 507
508static bool audit_watch_should_send_event(struct fsnotify_group *group, struct inode *inode, __u32 mask) 508static bool audit_watch_should_send_event(struct fsnotify_group *group, struct inode *inode,
509 __u32 mask, int data_type)
509{ 510{
510 struct fsnotify_mark_entry *entry; 511 struct fsnotify_mark_entry *entry;
511 bool send; 512 bool send;