)]}'
{
  "commit": "3a4551ea9c042502019b1d8a986e962cb9015366",
  "tree": "916990e767efc24cff025cc0c40fd1e5f8c75431",
  "parents": [
    "33e92e9ecf48c08cb4807e9a36f9eb01619c1a1e"
  ],
  "author": {
    "name": "Christian Brauner",
    "email": "brauner@kernel.org",
    "time": "Thu Apr 23 11:56:12 2026 +0200"
  },
  "committer": {
    "name": "Christian Brauner",
    "email": "brauner@kernel.org",
    "time": "Fri Apr 24 00:36:57 2026 +0200"
  },
  "message": "eventpoll: drop dead bool return from ep_remove_epi()\n\nep_remove_epi() always returns true -- the \"can be disposed\"\nanswer was meaningful back when the dying-check lived inside the\npre-split __ep_remove(), but after that check moved to ep_remove()\nthe return value is just noise. Both callers gate on it\nunconditionally:\n\n  if (ep_remove_epi(ep, epi))\n      WARN_ON_ONCE(ep_refcount_dec_and_test(ep));\n\n  dispose \u003d ep_remove_epi(ep, epi);\n  ...\n  if (dispose \u0026\u0026 ep_refcount_dec_and_test(ep))\n      ep_free(ep);\n\nMake ep_remove_epi() return void, drop the dispose local in\neventpoll_release_file(), and the useless conditionals at both\ncallers. No functional change.\n\nLink: https://patch.msgid.link/20260423-work-epoll-uaf-v1-9-2470f9eec0f5@kernel.org\nSigned-off-by: Christian Brauner (Amutable) \u003cbrauner@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3f99ff54626f1991f3626de4ccc7cfbc13050be5",
      "old_mode": 33188,
      "old_path": "fs/eventpoll.c",
      "new_id": "eeaadb000eee04224e670819878b061e277f401a",
      "new_mode": 33188,
      "new_path": "fs/eventpoll.c"
    }
  ]
}
