Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36fddeba authored by Eric Paris's avatar Eric Paris
Browse files

fsnotify: initialize the group->num_marks in a better place



Currently the comments say that group->num_marks is held because the group
is on the fsnotify_group list.  This isn't strictly the case, we really
just hold the num_marks for the life of the group (any time group->refcnt
is != 0)  This patch moves the initialization stuff and makes it clear when
it is really being held.

Signed-off-by: default avatarEric Paris <eparis@redhat.com>
parent 19c2a0e1
Loading
Loading
Loading
Loading
+7 −3
Original line number Original line Diff line number Diff line
@@ -82,9 +82,6 @@ static void fsnotify_add_group(struct fsnotify_group *group)
	BUG_ON(!mutex_is_locked(&fsnotify_grp_mutex));
	BUG_ON(!mutex_is_locked(&fsnotify_grp_mutex));


	group->on_inode_group_list = 1;
	group->on_inode_group_list = 1;
	/* being on the fsnotify_groups list holds one num_marks */
	atomic_inc(&group->num_marks);

	list_add_tail_rcu(&group->inode_group_list, &fsnotify_inode_groups);
	list_add_tail_rcu(&group->inode_group_list, &fsnotify_inode_groups);
}
}


@@ -183,7 +180,14 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
	if (!group)
	if (!group)
		return ERR_PTR(-ENOMEM);
		return ERR_PTR(-ENOMEM);


	/* set to 0 when there a no external references to this group */
	atomic_set(&group->refcnt, 1);
	atomic_set(&group->refcnt, 1);
	/*
	 * hits 0 when there are no external references AND no marks for
	 * this group
	 */
	atomic_set(&group->num_marks, 1);



	mutex_init(&group->notification_mutex);
	mutex_init(&group->notification_mutex);
	INIT_LIST_HEAD(&group->notification_list);
	INIT_LIST_HEAD(&group->notification_list);