aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2009-12-17 21:24:34 -0500
committerEric Paris <eparis@redhat.com>2010-07-28 09:59:01 -0400
commit6e5f77b32e9097a8a68a8d453799676cacf70cad (patch)
tree2a0211ecd5d79648e74fdf9f851a0669c5e4cc8a /include/linux
parentcb2d429faf2cae62d3c51e28099a181d5fe8c244 (diff)
fsnotify: intoduce a notification merge argument
Each group can define their own notification (and secondary_q) merge function. Inotify does tail drop, fanotify does matching and drop which can actually allocate a completely new event. But for fanotify to properly deal with permissions events it needs to know the new event which was ultimately added to the notification queue. This patch just implements a void ** argument which is passed to the merge function. fanotify can use this field to pass the new event back to higher layers. Signed-off-by: Eric Paris <eparis@redhat.com> for fanotify to properly deal with permissions events
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/fsnotify_backend.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
index 8b2e095e5907..afc690192972 100644
--- a/include/linux/fsnotify_backend.h
+++ b/include/linux/fsnotify_backend.h
@@ -355,7 +355,10 @@ extern struct fsnotify_event_private_data *fsnotify_remove_priv_from_event(struc
355extern int fsnotify_add_notify_event(struct fsnotify_group *group, 355extern int fsnotify_add_notify_event(struct fsnotify_group *group,
356 struct fsnotify_event *event, 356 struct fsnotify_event *event,
357 struct fsnotify_event_private_data *priv, 357 struct fsnotify_event_private_data *priv,
358 int (*merge)(struct list_head *, struct fsnotify_event *)); 358 int (*merge)(struct list_head *,
359 struct fsnotify_event *,
360 void **),
361 void **arg);
359/* true if the group notification queue is empty */ 362/* true if the group notification queue is empty */
360extern bool fsnotify_notify_queue_is_empty(struct fsnotify_group *group); 363extern bool fsnotify_notify_queue_is_empty(struct fsnotify_group *group);
361/* return, but do not dequeue the first event on the notification queue */ 364/* return, but do not dequeue the first event on the notification queue */