On 11/6/19 11:44 AM, Pavel Begunkov wrote: > On 06/11/2019 06:32, Jens Axboe wrote: >> If a request fails, we need to ensure we set REQ_F_FAIL_LINK on it if >> REQ_F_LINK is set. Any failure in the chain should break the chain. >> >> We were missing a few spots where this should be done. It might be nice >> to generalize this somewhat at some point, as long as we factor in the >> fact that failure looks different for each request type. >> > > The completion path also starts to get complicated, especially > non-uniform handling of links there. > > i.e. io_put_req() -> io_put_req_find_next() -> > io_free_req() -> __io_free_req() > Plus, io_free_req_many(), which can be used only in some cases. The many case is just for polling, I actually think that one is pretty clean and self explanatory. But I agree on the proliferation of them otherwise, at least the patches today cleaned it up a little. > My compiler didn't even inlined it, so there are 4 CALLs. > Though, still in TODO list. Huh, that's odd! -- Jens Axboe