fsnotify: pass both the vfsmount mark and inode mark

should_send_event() and handle_event() will both need to look up the inode
event if they get a vfsmount event.  Lets just pass both at the same time
since we have them both after walking the lists in lockstep.

Signed-off-by: Eric Paris <eparis@redhat.com>
This commit is contained in:
Eric Paris
2010-07-28 10:18:39 -04:00
parent 613a807fe7
commit ce8f76fb73
7 changed files with 91 additions and 45 deletions

View File

@@ -115,7 +115,8 @@ static int fanotify_get_response_from_access(struct fsnotify_group *group,
#endif
static int fanotify_handle_event(struct fsnotify_group *group,
struct fsnotify_mark *mark,
struct fsnotify_mark *inode_mark,
struct fsnotify_mark *fanotify_mark,
struct fsnotify_event *event)
{
int ret = 0;
@@ -196,8 +197,11 @@ static bool should_send_inode_event(struct fsnotify_group *group,
return true;
}
static bool fanotify_should_send_event(struct fsnotify_group *group, struct inode *to_tell,
struct vfsmount *mnt, struct fsnotify_mark *mark,
static bool fanotify_should_send_event(struct fsnotify_group *group,
struct inode *to_tell,
struct vfsmount *mnt,
struct fsnotify_mark *inode_mark,
struct fsnotify_mark *vfsmount_mark,
__u32 mask, void *data, int data_type)
{
pr_debug("%s: group=%p to_tell=%p mnt=%p mask=%x data=%p data_type=%d\n",
@@ -213,9 +217,10 @@ static bool fanotify_should_send_event(struct fsnotify_group *group, struct inod
return false;
if (mnt)
return should_send_vfsmount_event(group, mnt, to_tell, mark, mask);
return should_send_vfsmount_event(group, mnt, to_tell,
vfsmount_mark, mask);
else
return should_send_inode_event(group, to_tell, mark, mask);
return should_send_inode_event(group, to_tell, inode_mark, mask);
}
const struct fsnotify_ops fanotify_fsnotify_ops = {