On Thu, Jul 09, 2020 at 07:58:04AM -0600, Jens Axboe wrote: > > We don't actually need any new field at all. By the time the write > > returned ki_pos contains the offset after the write, and the res > > argument to ->ki_complete contains the amount of bytes written, which > > allow us to trivially derive the starting position. > > Then let's just do that instead of jumping through hoops either > justifying growing io_rw/io_kiocb or turning kiocb into a global > completion thing. Unfortunately that is a totally separate issue - the in-kernel offset can be trivially calculated. But we still need to figure out a way to pass it on to userspace. The current patchset does that by abusing the flags, which doesn't really work as the flags are way too small. So we somewhere need to have an address to do the put_user to.