This patchset is a followup from my last email, which may be found at https://lore.kernel.org/io-uring/20210103222117.905850-1-arni@xxxxxxxx/ Thanks for you feedback, Jens. I have modified the test app on my end as well, and it now looks like the following https://gist.githubusercontent.com/ArniDagur/3392a787e89e78ba8ff739ff0f8476d5/raw/d01d19bb6fdc3defea59ae7c2a2c3d29682d8520/main.c As you suggested, I now always return -EGAIN when force_nonblock is set. In addition, req_set_fail_links() is now called when less than the entirety of the buffer is spliced, and io_req_complete() is called at the end.