On Wed, Dec 09, 2020 at 05:55:53PM +0000, Christoph Hellwig wrote: > On Wed, Dec 09, 2020 at 01:37:05PM +0000, Pavel Begunkov wrote: > > Yeah, I had troubles to put comments around, and it's still open. > > > > For current cases it can be bound to kiocb, e.g. "if an bvec iter passed > > "together" with kiocb then the vector should stay intact up to > > ->ki_complete()". But that "together" is rather full of holes. > > What about: "For bvec based iters the bvec must not be freed until the > I/O has completed. For asynchronous I/O that means it must be freed > no earlier than from ->ki_complete." Perhaps for the second sentence "If the I/O is completed asynchronously, the bvec must not be freed before ->ki_complete() has been called"?