mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
fsnotify: remove group->mask
group->mask is now useless. It was originally a shortcut for fsnotify to save on performance. These checks are now redundant, so we remove them. Signed-off-by: Eric Paris <[email protected]>
This commit is contained in:
parent
03930979af
commit
43709a288e
6 changed files with 5 additions and 66 deletions
|
|
@ -199,8 +199,6 @@ void dnotify_flush(struct file *filp, fl_owner_t id)
|
|||
if (dn_mark->dn == NULL)
|
||||
fsnotify_destroy_mark(fsn_mark);
|
||||
|
||||
fsnotify_recalc_group_mask(dnotify_group);
|
||||
|
||||
mutex_unlock(&dnotify_mark_mutex);
|
||||
|
||||
fsnotify_put_mark(fsn_mark);
|
||||
|
|
@ -385,8 +383,6 @@ out:
|
|||
if (destroy)
|
||||
fsnotify_destroy_mark(fsn_mark);
|
||||
|
||||
fsnotify_recalc_group_mask(dnotify_group);
|
||||
|
||||
mutex_unlock(&dnotify_mark_mutex);
|
||||
fsnotify_put_mark(fsn_mark);
|
||||
out_err:
|
||||
|
|
|
|||
|
|
@ -496,8 +496,6 @@ static int fanotify_remove_vfsmount_mark(struct fsnotify_group *group,
|
|||
|
||||
removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags);
|
||||
fsnotify_put_mark(fsn_mark);
|
||||
if (removed & group->mask)
|
||||
fsnotify_recalc_group_mask(group);
|
||||
if (removed & mnt->mnt_fsnotify_mask)
|
||||
fsnotify_recalc_vfsmount_mask(mnt);
|
||||
|
||||
|
|
@ -518,9 +516,6 @@ static int fanotify_remove_inode_mark(struct fsnotify_group *group,
|
|||
removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags);
|
||||
/* matches the fsnotify_find_inode_mark() */
|
||||
fsnotify_put_mark(fsn_mark);
|
||||
|
||||
if (removed & group->mask)
|
||||
fsnotify_recalc_group_mask(group);
|
||||
if (removed & inode->i_fsnotify_mask)
|
||||
fsnotify_recalc_inode_mask(inode);
|
||||
|
||||
|
|
@ -572,12 +567,9 @@ static int fanotify_add_vfsmount_mark(struct fsnotify_group *group,
|
|||
}
|
||||
added = fanotify_mark_add_to_mask(fsn_mark, mask, flags);
|
||||
fsnotify_put_mark(fsn_mark);
|
||||
if (added) {
|
||||
if (added & ~group->mask)
|
||||
fsnotify_recalc_group_mask(group);
|
||||
if (added & ~mnt->mnt_fsnotify_mask)
|
||||
fsnotify_recalc_vfsmount_mask(mnt);
|
||||
}
|
||||
if (added & ~mnt->mnt_fsnotify_mask)
|
||||
fsnotify_recalc_vfsmount_mask(mnt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -607,12 +599,8 @@ static int fanotify_add_inode_mark(struct fsnotify_group *group,
|
|||
}
|
||||
added = fanotify_mark_add_to_mask(fsn_mark, mask, flags);
|
||||
fsnotify_put_mark(fsn_mark);
|
||||
if (added) {
|
||||
if (added & ~group->mask)
|
||||
fsnotify_recalc_group_mask(group);
|
||||
if (added & ~inode->i_fsnotify_mask)
|
||||
fsnotify_recalc_inode_mask(inode);
|
||||
}
|
||||
if (added & ~inode->i_fsnotify_mask)
|
||||
fsnotify_recalc_inode_mask(inode);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -734,7 +722,6 @@ SYSCALL_DEFINE(fanotify_mark)(int fanotify_fd, unsigned int flags,
|
|||
fsnotify_clear_vfsmount_marks_by_group(group);
|
||||
else
|
||||
fsnotify_clear_inode_marks_by_group(group);
|
||||
fsnotify_recalc_group_mask(group);
|
||||
break;
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
|
|
|
|||
|
|
@ -35,22 +35,6 @@ LIST_HEAD(fsnotify_inode_groups);
|
|||
/* all groups registered to receive mount point filesystem notifications */
|
||||
LIST_HEAD(fsnotify_vfsmount_groups);
|
||||
|
||||
/*
|
||||
* Update the group->mask by running all of the marks associated with this
|
||||
* group and finding the bitwise | of all of the mark->mask.
|
||||
*/
|
||||
void fsnotify_recalc_group_mask(struct fsnotify_group *group)
|
||||
{
|
||||
__u32 mask = 0;
|
||||
struct fsnotify_mark *mark;
|
||||
|
||||
spin_lock(&group->mark_lock);
|
||||
list_for_each_entry(mark, &group->marks_list, g_list)
|
||||
mask |= mark->mask;
|
||||
group->mask = mask;
|
||||
spin_unlock(&group->mark_lock);
|
||||
}
|
||||
|
||||
void fsnotify_add_vfsmount_group(struct fsnotify_group *group)
|
||||
{
|
||||
struct fsnotify_group *group_iter;
|
||||
|
|
|
|||
|
|
@ -606,16 +606,11 @@ static int inotify_update_existing_watch(struct fsnotify_group *group,
|
|||
int dropped = (old_mask & ~new_mask);
|
||||
/* more bits in this fsn_mark than the inode's mask? */
|
||||
int do_inode = (new_mask & ~inode->i_fsnotify_mask);
|
||||
/* more bits in this fsn_mark than the group? */
|
||||
int do_group = (new_mask & ~group->mask);
|
||||
|
||||
/* update the inode with this new fsn_mark */
|
||||
if (dropped || do_inode)
|
||||
fsnotify_recalc_inode_mask(inode);
|
||||
|
||||
/* update the group mask with the new mask */
|
||||
if (dropped || do_group)
|
||||
fsnotify_recalc_group_mask(group);
|
||||
}
|
||||
|
||||
/* return the wd */
|
||||
|
|
@ -673,10 +668,6 @@ static int inotify_new_watch(struct fsnotify_group *group,
|
|||
/* return the watch descriptor for this new mark */
|
||||
ret = tmp_i_mark->wd;
|
||||
|
||||
/* if this mark added a new event update the group mask */
|
||||
if (mask & ~group->mask)
|
||||
fsnotify_recalc_group_mask(group);
|
||||
|
||||
out_err:
|
||||
/* match the ref from fsnotify_init_mark() */
|
||||
fsnotify_put_mark(&tmp_i_mark->fsn_mark);
|
||||
|
|
|
|||
Loading…
Reference in a new issue