From 73d8ee5b4e3f11d9c178562f742dcc8d99d8c4b2 Mon Sep 17 00:00:00 2001 From: Eric Paris Date: Wed, 28 Jul 2010 10:18:38 -0400 Subject: [PATCH] --- yaml --- r: 207725 b: refs/heads/master c: 4cd76a47924cd966799402d0f2bba356cde5c1b3 h: refs/heads/master i: 207723: 7e297afdfa84947ffd0401e1286631b9b8688fef v: v3 --- [refs] | 2 +- trunk/kernel/audit_watch.c | 20 +++----------------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/[refs] b/[refs] index 6ed395aa78ed..e13483c4dba8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c496313fcc35a41e176e3f19cdda2544ea3a32a6 +refs/heads/master: 4cd76a47924cd966799402d0f2bba356cde5c1b3 diff --git a/trunk/kernel/audit_watch.c b/trunk/kernel/audit_watch.c index 4d5ea0319a6c..9173bcf33763 100644 --- a/trunk/kernel/audit_watch.c +++ b/trunk/kernel/audit_watch.c @@ -514,18 +514,10 @@ static bool audit_watch_should_send_event(struct fsnotify_group *group, struct i struct vfsmount *mnt, struct fsnotify_mark *mark, __u32 mask, void *data, int data_type) { - struct fsnotify_mark *entry; bool send; - entry = fsnotify_find_inode_mark(group, inode); - if (!entry) - return false; - mask = (mask & ~FS_EVENT_ON_CHILD); - send = (entry->mask & mask); - - /* find took a reference */ - fsnotify_put_mark(entry); + send = (mark->mask & mask); return send; } @@ -540,11 +532,9 @@ static int audit_watch_handle_event(struct fsnotify_group *group, const char *dname = event->file_name; struct audit_parent *parent; - BUG_ON(group != audit_watch_group); + parent = container_of(mark, struct audit_parent, mark); - parent = audit_find_parent(event->to_tell); - if (unlikely(!parent)) - return 0; + BUG_ON(group != audit_watch_group); switch (event->data_type) { case (FSNOTIFY_EVENT_FILE): @@ -565,10 +555,6 @@ static int audit_watch_handle_event(struct fsnotify_group *group, audit_update_watch(parent, dname, (dev_t)-1, (unsigned long)-1, 1); else if (mask & (FS_DELETE_SELF|FS_UNMOUNT|FS_MOVE_SELF)) audit_remove_parent_watches(parent); - /* moved put_inotify_watch to freeing mark */ - - /* matched the ref taken by audit_find_parent */ - audit_put_parent(parent); return 0; }