Another option is that we fully stick with the per-group buffer concept, which could also work just fine with io_rsrc_node. If we stick with the OP_GROUP_START thing, then that op could setup group_buf thing that is local to that group. This is where an instantiated buffer would appear too, keeping it strictly local to that group. That avoids needing any kind of ring state for this, and the group_buf would be propagated from the group leader to the members. The group_buf lives until all members of the group are dead, at which point it's released. I forget if your grouping implementation mandated the same scheme I originally had, where the group leader completes last? If it does, then it's a natural thing to have the group_buf live for the duration of the group leader, and it can just be normal per-io_kiocb data at that point, nothing special needed there. As with the previous scheme, each request using one of these IORING_RSRC_KBUFFER nodes just assigns it like it would any other fixed resource node, and the normal completion path puts it. -- Jens Axboe