On Mon, Jul 20, 2020 at 01:43:43PM +0000, Damien Le Moal wrote: > On 2020/07/20 22:38, Christoph Hellwig wrote: > > On Mon, Jul 20, 2020 at 10:21:17PM +0900, Johannes Thumshirn wrote: > >> From: Damien Le Moal <damien.lemoal@xxxxxxx> > >> > >> The res and res2 fields of struct io_event are signed 64 bits values > >> (__s64 type). Allow the ki_complete method of struct kiocb to set 64 > >> bits values in these fields by changin its interface from the long type > >> to long long. > > > > Which doesn't help if the consumers can't deal with these values. > > But that shouldn't even be required for using zone append anyway.. > > > > Not sure what you mean... > > res2 is used to pass back to the user the written file offset, 64bits Bytes > value, for aio case (io_submit()/io_getevent()). The change does not break user > interface at all, no changes needed to any system call. The patch just enables > passing that 64bit byte offset. The consumer of it would be the user > application, and yes, it does need to know what it is doing. But if it is using > zonefs, likely, the application knows. Please start a discussion on this ABI on the linux-aio and linux-api lists. If we support that for zonefs we should also support it for other direct I/O writes. And I'm not sure an API that only works with aio and not io_uring is going to win a lot of friends these days.