On Fri, Jul 10, 2020 at 02:48:24PM +0100, Matthew Wilcox wrote: > If we're going to go the route of changing the CQE, how about: > > struct io_uring_cqe { > __u64 user_data; /* sqe->data submission passed back */ > - __s32 res; /* result code for this event */ > - __u32 flags; > + union { > + struct { > + __s32 res; /* result code for this event */ > + __u32 flags; > + }; > + __s64 res64; > + }; > }; > > then we don't need to change the CQE size and it just depends on the SQE > whether the CQE for it uses res+flags or res64. How do you return a status code or short write when you just have a u64 that is needed for the offset?