qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] For AIO return -ENOSPC on short write


From: Jes . Sorensen
Subject: [Qemu-devel] [PATCH] For AIO return -ENOSPC on short write
Date: Tue, 22 Feb 2011 11:18:00 +0100

From: Jes Sorensen <address@hidden>

Signed-off-by: Jes Sorensen <address@hidden>
---
 linux-aio.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/linux-aio.c b/linux-aio.c
index 68f4b3d..d9c0225 100644
--- a/linux-aio.c
+++ b/linux-aio.c
@@ -32,6 +32,7 @@ struct qemu_laiocb {
     ssize_t ret;
     size_t nbytes;
     int async_context_id;
+    int type;
     QLIST_ENTRY(qemu_laiocb) node;
 };
 
@@ -62,6 +63,9 @@ static void qemu_laio_process_completion(struct 
qemu_laio_state *s,
     if (ret != -ECANCELED) {
         if (ret == laiocb->nbytes)
             ret = 0;
+        else if ((laiocb->type == QEMU_AIO_WRITE) && (ret >= 0) &&
+                 (ret < laiocb->nbytes))
+            ret = -ENOSPC;
         else if (ret >= 0)
             ret = -EINVAL;
 
@@ -204,6 +208,7 @@ BlockDriverAIOCB *laio_submit(BlockDriverState *bs, void 
*aio_ctx, int fd,
     laiocb->nbytes = nb_sectors * 512;
     laiocb->ctx = s;
     laiocb->ret = -EINPROGRESS;
+    laiocb->type = type;
     laiocb->async_context_id = get_async_context_id();
 
     iocbs = &laiocb->iocb;
-- 
1.7.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]