{
  "slug": "io-uring-linked-requests",
  "term": "io_uring linked requests",
  "aliases": [
    "IOSQE_IO_LINK",
    "IOSQE_IO_HARDLINK"
  ],
  "definition": "io_uring linked requests are a chain of submission entries whose dependencies delay each successor until its predecessor completes.",
  "note": "IO_LINK is local to its chain and does not order unrelated requests. A chain must stay within a submission boundary. IO_HARDLINK retains a link across a completion error; it does not convert the failed operation into a successful one. [flags]",
  "status": "shipping",
  "advantages": [
    "Expresses dependencies without waiting in user space between every operation."
  ],
  "limitations": [
    "Ordering a chain does not make its side effects an atomic transaction."
  ],
  "related": [
    "io-uring",
    "io-uring-cqe",
    "io-uring-drain",
    "persistence-ordering"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-14",
  "citations": [
    {
      "id": "flags",
      "title": "liburing 2.9: io_uring_sqe_set_flags(3), chain and drain scope.",
      "url": "https://github.com/axboe/liburing/blob/liburing-2.9/man/io_uring_sqe_set_flags.3",
      "accessed": "2026-10-14"
    },
    {
      "id": "hesela-uring",
      "title": "io_uring: completion is not a durable commit",
      "url": "https://hesela.com/analyses/io-uring-completion-ordering-durability/",
      "accessed": "2026-10-14"
    }
  ]
}
