Re: [PATCH v3 4/4] io_uring: add support for zone-append
From: Kanchan Joshi <hidden>
Date: 2020-07-10 14:11:52
Also in:
io-uring, linux-fsdevel, lkml
From: Kanchan Joshi <hidden>
Date: 2020-07-10 14:11:52
Also in:
io-uring, linux-fsdevel, lkml
On Fri, Jul 10, 2020 at 7:21 PM Matthew Wilcox [off-list ref] wrote:
On Fri, Jul 10, 2020 at 02:49:32PM +0100, Christoph Hellwig wrote:quoted
On Fri, Jul 10, 2020 at 02:48:24PM +0100, Matthew Wilcox wrote:quoted
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?it's an s64 not a u64 so you can return a negative errno. i didn't think we allowed short writes for objects-which-have-a-pos.
If we are doing this for zone-append (and not general cases), "__s64 res64" should work -. 64 bits = 1 (sign) + 23 (bytes-copied: cqe->res) + 40 (written-location: chunk_sector bytes limit) -- Joshi