On 09/12/2020 18:24, Matthew Wilcox wrote: > 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"? Sounds good, I'll use it. Thanks! -- Pavel Begunkov