)]}'
{
  "commit": "fecc4559780d52d174ea05e3bf543669165389c3",
  "tree": "b50b549f4c647bbd4ee4dda2603cb2e8b8b2195b",
  "parents": [
    "1a2620a99803ad660edc5d22fd9c66cce91ceb1c"
  ],
  "author": {
    "name": "Amir Goldstein",
    "email": "amir73il@gmail.com",
    "time": "Wed Dec 02 14:07:09 2020 +0200"
  },
  "committer": {
    "name": "Jan Kara",
    "email": "jack@suse.cz",
    "time": "Fri Dec 11 11:40:43 2020 +0100"
  },
  "message": "fsnotify: fix events reported to watching parent and child\n\nfsnotify_parent() used to send two separate events to backends when a\nparent inode is watching children and the child inode is also watching.\nIn an attempt to avoid duplicate events in fanotify, we unified the two\nbackend callbacks to a single callback and handled the reporting of the\ntwo separate events for the relevant backends (inotify and dnotify).\nHowever the handling is buggy and can result in inotify and dnotify\nlisteners receiving events of the type they never asked for or spurious\nevents.\n\nThe problem is the unified event callback with two inode marks (parent and\nchild) is called when any of the parent and child inodes are watched and\ninterested in the event, but the parent inode\u0027s mark that is interested\nin the event on the child is not necessarily the one we are currently\nreporting to (it could belong to a different group).\n\nSo before reporting the parent or child event flavor to backend we need\nto check that the mark is really interested in that event flavor.\n\nThe semantics of INODE and CHILD marks were hard to follow and made the\nlogic more complicated than it should have been.  Replace it with INODE\nand PARENT marks semantics to hopefully make the logic more clear.\n\nThanks to Hugh Dickins for spotting a bug in the earlier version of this\npatch.\n\nFixes: 497b0c5a7c06 (\"fsnotify: send event to parent and child with single callback\")\nCC: stable@vger.kernel.org\nLink: https://lore.kernel.org/r/20201202120713.702387-4-amir73il@gmail.com\nReported-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Amir Goldstein \u003camir73il@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9167884a61eca972852c8af5801e913ebbc98c34",
      "old_mode": 33188,
      "old_path": "fs/notify/fanotify/fanotify.c",
      "new_id": "1192c995362007ef538ce730ba011d302bb34b2a",
      "new_mode": 33188,
      "new_path": "fs/notify/fanotify/fanotify.c"
    },
    {
      "type": "modify",
      "old_id": "c5c68bcbaadf015f847b0e23b97b87394478d19d",
      "old_mode": 33188,
      "old_path": "fs/notify/fsnotify.c",
      "new_id": "30d422b8c0fc7e13bdee316a2d058eab9d9efc73",
      "new_mode": 33188,
      "new_path": "fs/notify/fsnotify.c"
    },
    {
      "type": "modify",
      "old_id": "4ee3044eedd06b8c3816429b566bc2b95f90064c",
      "old_mode": 33188,
      "old_path": "include/linux/fsnotify_backend.h",
      "new_id": "a2e42d3cd87cfaf94bc2884cacc2fa740c3896e6",
      "new_mode": 33188,
      "new_path": "include/linux/fsnotify_backend.h"
    }
  ]
}
