提交 d995053d 编写于 作者: L Linus Torvalds

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
...@@ -418,6 +418,14 @@ When: 2.6.33 ...@@ -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
......
...@@ -91,6 +91,7 @@ static int dnotify_handle_event(struct fsnotify_group *group, ...@@ -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, ...@@ -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;
} }
......
...@@ -324,11 +324,11 @@ int fsnotify_add_mark(struct fsnotify_mark_entry *entry, ...@@ -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);
entry->group = group;
entry->inode = inode;
lentry = fsnotify_find_mark_entry(group, inode); lentry = fsnotify_find_mark_entry(group, inode);
if (!lentry) { if (!lentry) {
entry->group = group;
entry->inode = inode;
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);
......
...@@ -143,7 +143,7 @@ static bool event_compare(struct fsnotify_event *old, struct fsnotify_event *new ...@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册