]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop fanotify patch from 4.19
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Nov 2018 13:47:30 +0000 (14:47 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Nov 2018 13:47:30 +0000 (14:47 +0100)
queue-4.19/fanotify-fix-handling-of-events-on-child-sub-directory.patch [deleted file]
queue-4.19/series

diff --git a/queue-4.19/fanotify-fix-handling-of-events-on-child-sub-directory.patch b/queue-4.19/fanotify-fix-handling-of-events-on-child-sub-directory.patch
deleted file mode 100644 (file)
index da99a9a..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-From b469e7e47c8a075cc08bcd1e85d4365134bdcdd5 Mon Sep 17 00:00:00 2001
-From: Amir Goldstein <amir73il@gmail.com>
-Date: Tue, 30 Oct 2018 20:29:53 +0200
-Subject: fanotify: fix handling of events on child sub-directory
-
-From: Amir Goldstein <amir73il@gmail.com>
-
-commit b469e7e47c8a075cc08bcd1e85d4365134bdcdd5 upstream.
-
-When an event is reported on a sub-directory and the parent inode has
-a mark mask with FS_EVENT_ON_CHILD|FS_ISDIR, the event will be sent to
-fsnotify() even if the event type is not in the parent mark mask
-(e.g. FS_OPEN).
-
-Further more, if that event happened on a mount or a filesystem with
-a mount/sb mark that does have that event type in their mask, the "on
-child" event will be reported on the mount/sb mark.  That is not
-desired, because user will get a duplicate event for the same action.
-
-Note that the event reported on the victim inode is never merged with
-the event reported on the parent inode, because of the check in
-should_merge(): old_fsn->inode == new_fsn->inode.
-
-Fix this by looking for a match of an actual event type (i.e. not just
-FS_ISDIR) in parent's inode mark mask and by not reporting an "on child"
-event to group if event type is only found on mount/sb marks.
-
-[backport hint: The bug seems to have always been in fanotify, but this
-                patch will only apply cleanly to v4.19.y]
-
-Cc: <stable@vger.kernel.org> # v4.19
-Signed-off-by: Amir Goldstein <amir73il@gmail.com>
-Signed-off-by: Jan Kara <jack@suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/notify/fanotify/fanotify.c |   10 +++++-----
- fs/notify/fsnotify.c          |    7 +++++--
- 2 files changed, 10 insertions(+), 7 deletions(-)
-
---- a/fs/notify/fanotify/fanotify.c
-+++ b/fs/notify/fanotify/fanotify.c
-@@ -115,12 +115,12 @@ static bool fanotify_should_send_event(s
-                       continue;
-               mark = iter_info->marks[type];
-               /*
--               * if the event is for a child and this inode doesn't care about
--               * events on the child, don't send it!
-+               * If the event is for a child and this mark doesn't care about
-+               * events on a child, don't send it!
-                */
--              if (type == FSNOTIFY_OBJ_TYPE_INODE &&
--                  (event_mask & FS_EVENT_ON_CHILD) &&
--                  !(mark->mask & FS_EVENT_ON_CHILD))
-+              if (event_mask & FS_EVENT_ON_CHILD &&
-+                  (type != FSNOTIFY_OBJ_TYPE_INODE ||
-+                   !(mark->mask & FS_EVENT_ON_CHILD)))
-                       continue;
-               marks_mask |= mark->mask;
---- a/fs/notify/fsnotify.c
-+++ b/fs/notify/fsnotify.c
-@@ -161,9 +161,9 @@ int __fsnotify_parent(const struct path
-       parent = dget_parent(dentry);
-       p_inode = parent->d_inode;
--      if (unlikely(!fsnotify_inode_watches_children(p_inode)))
-+      if (unlikely(!fsnotify_inode_watches_children(p_inode))) {
-               __fsnotify_update_child_dentry_flags(p_inode);
--      else if (p_inode->i_fsnotify_mask & mask) {
-+      } else if (p_inode->i_fsnotify_mask & mask & ALL_FSNOTIFY_EVENTS) {
-               struct name_snapshot name;
-               /* we are notifying a parent so come up with the new mask which
-@@ -360,6 +360,9 @@ int fsnotify(struct inode *to_tell, __u3
-               iter_info.marks[FSNOTIFY_OBJ_TYPE_VFSMOUNT] =
-                       fsnotify_first_mark(&mnt->mnt_fsnotify_marks);
-       }
-+      /* An event "on child" is not intended for a mount/sb mark */
-+      if (mask & FS_EVENT_ON_CHILD)
-+              mnt_or_sb_mask = 0;
-       /*
-        * We need to merge inode & vfsmount mark lists so that inode mark
index 6cec08a42eff465fb31a25756fecd394561d945d..4c3901c1f54616a5818314e564da44dae90a1997 100644 (file)
@@ -163,7 +163,6 @@ selinux-check-length-properly-in-sctp-bind-hook.patch
 gfs2-put-bitmap-buffers-in-put_super.patch
 gfs2-fix-metadata-read-ahead-during-truncate-2.patch
 libata-blacklist-samsung-mz7td256hafv-000l9-ssd.patch
-fanotify-fix-handling-of-events-on-child-sub-directory.patch
 crypto-user-fix-leaking-uninitialized-memory-to-userspace.patch
 lib-ubsan.c-don-t-mark-__ubsan_handle_builtin_unreachable-as-noreturn.patch
 hugetlbfs-fix-kernel-bug-at-fs-hugetlbfs-inode.c-444.patch