On 23.03.26 18:02, Hanna Czenczek wrote:
On 23.03.26 17:36, Kevin Wolf wrote:
Am 18.03.2026 um 16:32 hat Hanna Czenczek geschrieben:
Put all request parameters into the qemu_laiocb struct, which will allow
re-submitting the tail of short reads/writes.

Signed-off-by: Hanna Czenczek <[email protected]>
---
  block/linux-aio.c | 35 ++++++++++++++++++++++-------------
  1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/block/linux-aio.c b/block/linux-aio.c
index 53c3e9af8a..1f25339dc9 100644
--- a/block/linux-aio.c
+++ b/block/linux-aio.c
@@ -40,10 +40,15 @@ struct qemu_laiocb {
      Coroutine *co;
      LinuxAioState *ctx;
      struct iocb iocb;
+    int fd;
      ssize_t ret;
+    off_t offset;
      size_t nbytes;
      QEMUIOVector *qiov;
-    bool is_read;
+
+    int type;
If you put fd and type next to each other, you'd avoid a hole in the
struct.

And I assume pulling dev_max_batch forward, after qiov, yes.

Noticed while sending: I missed `.next` for some reason. So no reason to pull dev_max_batch forward, and I guess there will always be a hole, but I suppose it is still best to put all 32-bit ints next to each other (fd, type, flags) so filling that up in the future is more likely.

Hanna

+    BdrvRequestFlags flags;
+    uint64_t dev_max_batch;
      QSIMPLEQ_ENTRY(qemu_laiocb) next;
  };


Reply via email to