return ERR_PTR(ret);
}
- fsnotify_recalc_group_mask(audit_watch_group);
-
return parent;
}
mutex_unlock(&audit_filter_mutex);
fsnotify_destroy_mark(&parent->mark);
-
- fsnotify_recalc_group_mask(audit_watch_group);
-
}
/* Get path information necessary for adding watches. */
audit_put_parent(parent);
}
}
-
- fsnotify_recalc_group_mask(audit_watch_group);
-
}
static bool audit_watch_should_send_event(struct fsnotify_group *group, struct inode *inode,
- struct vfsmount *mnt, struct fsnotify_mark *mark,
+ struct fsnotify_mark *inode_mark,
+ struct fsnotify_mark *vfsmount_mark,
__u32 mask, void *data, int data_type)
{
return true;
/* Update watch data in audit rules based on fsnotify events. */
static int audit_watch_handle_event(struct fsnotify_group *group,
- struct fsnotify_mark *mark,
+ struct fsnotify_mark *inode_mark,
+ struct fsnotify_mark *vfsmount_mark,
struct fsnotify_event *event)
{
struct inode *inode;
const char *dname = event->file_name;
struct audit_parent *parent;
- parent = container_of(mark, struct audit_parent, mark);
+ parent = container_of(inode_mark, struct audit_parent, mark);
BUG_ON(group != audit_watch_group);
switch (event->data_type) {
- case (FSNOTIFY_EVENT_FILE):
- inode = event->file->f_path.dentry->d_inode;
+ case (FSNOTIFY_EVENT_PATH):
+ inode = event->path.dentry->d_inode;
break;
case (FSNOTIFY_EVENT_INODE):
inode = event->inode;