One of the fabled features with chains has long been the desire to support things like: <open fileX><read from fileX><close fileX> in a single chain. This currently doesn't work, since the read/close depends on what file descriptor we get on open. The original attempt at solving this provided a means to pass descriptors between chains in a link, this version takes a different route. Based on Josh's support for O_SPECIFIC_FD, we can instead control what fd value we're going to get out of open (or accept). With that in place, we don't need to do any magic to make this work. The above chain then becomes: <open fileX with fd Y><read from fd Y><close fd Y> which is a lot more useful, and allows any sort of weird chains without needing to nest "last open" file descriptors. Updated the test program to use this approach: https://git.kernel.dk/cgit/liburing/plain/test/orc.c?h=fd-select which forces the use of fd==89 for the open, and then uses that for the read and close. Outside of this adaptation, fixed a few bugs and cleaned things up. -- Jens Axboe