)]}'
{
  "commit": "6da8f402e362b2f546e2efb7167fc9597aef6faf",
  "tree": "549fbcfcac9ac4135e5ce4878f2fd125954aed5b",
  "parents": [
    "cde56daf4b93f474dc256dbcc5205035223ae6f5"
  ],
  "author": {
    "name": "Eugene Gvozdetsky",
    "email": "gvozdet@gmail.com",
    "time": "Fri Oct 09 01:08:49 2026 +0200"
  },
  "committer": {
    "name": "Jens Axboe",
    "email": "axboe@kernel.dk",
    "time": "Fri Oct 09 08:32:55 2026 -0600"
  },
  "message": "io_uring/register: don\u0027t exempt disabled rings from task restrictions\n\nA ring created with IORING_SETUP_R_DISABLED is exempt from its register\nrestrictions until it is enabled. This lets the creator register the\nrestrictions and then enable the ring with IORING_REGISTER_ENABLE_RINGS,\nwhether or not that opcode is in the allowed set.\n\nSince commit ed82f35b926b (\"io_uring: allow registration of per-task\nrestrictions\"), a ring also inherits restrictions from the task that\ncreates it, and the same exemption applies to those. A task whose\nregister opcodes are restricted can therefore create a disabled ring,\nissue any register opcode on it, and then enable it.\n\nMark rings whose restrictions were inherited from the task, and keep\nchecking register opcodes for them while the ring is disabled. Enabling\nsuch a ring now requires IORING_REGISTER_ENABLE_RINGS to be in the\ntask\u0027s allowed set. Per-ring restrictions registered on a disabled ring\nwork as before.\n\nFixes: ed82f35b926b (\"io_uring: allow registration of per-task restrictions\")\nCc: stable@vger.kernel.org\nAssisted-by: Claude:claude-opus-5-5\nSigned-off-by: Eugene Gvozdetsky \u003cgvozdet@gmail.com\u003e\nLink: https://patch.msgid.link/20261009-iouring-task-restrict-fix-v1-1-a49daf55a12c@gmail.com\n[axboe: amend with inheritance flag fixup]\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6b9e9c669bb3628645ef3f561ff00aac9dc317a7",
      "old_mode": 33188,
      "old_path": "include/linux/io_uring_types.h",
      "new_id": "f9aab8d3f861c78712a5289bc444ed107b6abe91",
      "new_mode": 33188,
      "new_path": "include/linux/io_uring_types.h"
    },
    {
      "type": "modify",
      "old_id": "79c40e0abf17f06365ca118879dfbd2fc0e12588",
      "old_mode": 33188,
      "old_path": "io_uring/io_uring.c",
      "new_id": "c994157173a29d177e3df84be6ff2a7f38c2bab8",
      "new_mode": 33188,
      "new_path": "io_uring/io_uring.c"
    },
    {
      "type": "modify",
      "old_id": "d11a53d6843138f3265409ea91a529433bc0e9e2",
      "old_mode": 33188,
      "old_path": "io_uring/register.c",
      "new_id": "dab3eb4258dffe49c8b6ec012bef4b742051b1c4",
      "new_mode": 33188,
      "new_path": "io_uring/register.c"
    }
  ]
}
