summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorEric Paris2010-07-28 16:18:38 +0200
committerEric Paris2010-07-28 16:18:52 +0200
commit3a9b16b407f10b2a771bcae13fb5791e527d6bcf (patch)
tree0d88cac61bd6d3f5028eb0c9a45e7af9fbd24311 /kernel
parentfsnotify: Exchange list heads instead of moving elements (diff)
downloadkernel-qcow2-linux-3a9b16b407f10b2a771bcae13fb5791e527d6bcf.tar.gz
kernel-qcow2-linux-3a9b16b407f10b2a771bcae13fb5791e527d6bcf.tar.xz
kernel-qcow2-linux-3a9b16b407f10b2a771bcae13fb5791e527d6bcf.zip
fsnotify: send fsnotify_mark to groups in event handling functions
With the change of fsnotify to use srcu walking the marks list instead of walking the global groups list we now know the mark in question. The code can send the mark to the group's handling functions and the groups won't have to find those marks themselves. Signed-off-by: Eric Paris <eparis@redhat.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/audit_tree.c8
-rw-r--r--kernel/audit_watch.c8
2 files changed, 10 insertions, 6 deletions
diff --git a/kernel/audit_tree.c b/kernel/audit_tree.c
index cfb97d752a61..584b94360217 100644
--- a/kernel/audit_tree.c
+++ b/kernel/audit_tree.c
@@ -903,7 +903,9 @@ static void evict_chunk(struct audit_chunk *chunk)
mutex_unlock(&audit_filter_mutex);
}
-static int audit_tree_handle_event(struct fsnotify_group *group, struct fsnotify_event *event)
+static int audit_tree_handle_event(struct fsnotify_group *group,
+ struct fsnotify_mark *mark,
+ struct fsnotify_event *event)
{
BUG();
return -EOPNOTSUPP;
@@ -918,8 +920,8 @@ static void audit_tree_freeing_mark(struct fsnotify_mark *entry, struct fsnotify
}
static bool audit_tree_send_event(struct fsnotify_group *group, struct inode *inode,
- struct vfsmount *mnt, __u32 mask, void *data,
- int data_type)
+ struct vfsmount *mnt, struct fsnotify_mark *mark,
+ __u32 mask, void *data, int data_type)
{
return 0;
}
diff --git a/kernel/audit_watch.c b/kernel/audit_watch.c
index b955a22d8ff1..4d5ea0319a6c 100644
--- a/kernel/audit_watch.c
+++ b/kernel/audit_watch.c
@@ -511,8 +511,8 @@ void audit_remove_watch_rule(struct audit_krule *krule)
}
static bool audit_watch_should_send_event(struct fsnotify_group *group, struct inode *inode,
- struct vfsmount *mnt, __u32 mask, void *data,
- int data_type)
+ struct vfsmount *mnt, struct fsnotify_mark *mark,
+ __u32 mask, void *data, int data_type)
{
struct fsnotify_mark *entry;
bool send;
@@ -531,7 +531,9 @@ static bool audit_watch_should_send_event(struct fsnotify_group *group, struct i
}
/* Update watch data in audit rules based on fsnotify events. */
-static int audit_watch_handle_event(struct fsnotify_group *group, struct fsnotify_event *event)
+static int audit_watch_handle_event(struct fsnotify_group *group,
+ struct fsnotify_mark *mark,
+ struct fsnotify_event *event)
{
struct inode *inode;
__u32 mask = event->mask;