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

Commit d995053d authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://git.infradead.org/users/eparis/notify

* 'for-linus' of git://git.infradead.org/users/eparis/notify:
  dnotify: ignore FS_EVENT_ON_CHILD
  inotify: fix coalesce duplicate events into a single event in special case
  inotify: deprecate the inotify kernel interface
  fsnotify: do not set group for a mark before it is on the i_list
parents be8db0b8 94552684
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -418,6 +418,14 @@ When: 2.6.33
Why:	Should be implemented in userspace, policy daemon.
Why:	Should be implemented in userspace, policy daemon.
Who:	Johannes Berg <johannes@sipsolutions.net>
Who:	Johannes Berg <johannes@sipsolutions.net>


---------------------------

What:	CONFIG_INOTIFY
When:	2.6.33
Why:	last user (audit) will be converted to the newer more generic
	and more easily maintained fsnotify subsystem
Who:	Eric Paris <eparis@redhat.com>

----------------------------
----------------------------


What:	lock_policy_rwsem_* and unlock_policy_rwsem_* will not be
What:	lock_policy_rwsem_* and unlock_policy_rwsem_* will not be
+2 −1
Original line number Original line Diff line number Diff line
@@ -91,6 +91,7 @@ static int dnotify_handle_event(struct fsnotify_group *group,
	struct dnotify_struct *dn;
	struct dnotify_struct *dn;
	struct dnotify_struct **prev;
	struct dnotify_struct **prev;
	struct fown_struct *fown;
	struct fown_struct *fown;
	__u32 test_mask = event->mask & ~FS_EVENT_ON_CHILD;


	to_tell = event->to_tell;
	to_tell = event->to_tell;


@@ -106,7 +107,7 @@ static int dnotify_handle_event(struct fsnotify_group *group,
	spin_lock(&entry->lock);
	spin_lock(&entry->lock);
	prev = &dnentry->dn;
	prev = &dnentry->dn;
	while ((dn = *prev) != NULL) {
	while ((dn = *prev) != NULL) {
		if ((dn->dn_mask & event->mask) == 0) {
		if ((dn->dn_mask & test_mask) == 0) {
			prev = &dn->dn_next;
			prev = &dn->dn_next;
			continue;
			continue;
		}
		}
+3 −3
Original line number Original line Diff line number Diff line
@@ -324,11 +324,11 @@ int fsnotify_add_mark(struct fsnotify_mark_entry *entry,
	spin_lock(&group->mark_lock);
	spin_lock(&group->mark_lock);
	spin_lock(&inode->i_lock);
	spin_lock(&inode->i_lock);


	lentry = fsnotify_find_mark_entry(group, inode);
	if (!lentry) {
		entry->group = group;
		entry->group = group;
		entry->inode = inode;
		entry->inode = inode;


	lentry = fsnotify_find_mark_entry(group, inode);
	if (!lentry) {
		hlist_add_head(&entry->i_list, &inode->i_fsnotify_mark_entries);
		hlist_add_head(&entry->i_list, &inode->i_fsnotify_mark_entries);
		list_add(&entry->g_list, &group->mark_entries);
		list_add(&entry->g_list, &group->mark_entries);


+1 −1
Original line number Original line Diff line number Diff line
@@ -143,7 +143,7 @@ static bool event_compare(struct fsnotify_event *old, struct fsnotify_event *new
			/* remember, after old was put on the wait_q we aren't
			/* remember, after old was put on the wait_q we aren't
			 * allowed to look at the inode any more, only thing
			 * allowed to look at the inode any more, only thing
			 * left to check was if the file_name is the same */
			 * left to check was if the file_name is the same */
			if (old->name_len &&
			if (!old->name_len ||
			    !strcmp(old->file_name, new->file_name))
			    !strcmp(old->file_name, new->file_name))
				return true;
				return true;
			break;
			break;