qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] rbd: print a clear error message when write bey


From: Jun Li
Subject: Re: [Qemu-devel] [PATCH] rbd: print a clear error message when write beyond EOF
Date: Thu, 11 Dec 2014 11:20:51 +0800
User-agent: Mutt/1.5.23 (2014-03-12)

On Wed, 12/10 13:48, Josh Durgin wrote:
> On 12/10/2014 07:47 AM, Jun Li wrote:
> >Currently, as rbd driver do not support dynamic growth when write beyond EOF,
> >so just print a clear error message.
> >
> >Signed-off-by: Jun Li <address@hidden>
> >---
> >  block/rbd.c | 14 ++++++++++++++
> >  1 file changed, 14 insertions(+)
> >
> >diff --git a/block/rbd.c b/block/rbd.c
> >index 5b5a64a..65b01f0 100644
> >--- a/block/rbd.c
> >+++ b/block/rbd.c
> >@@ -693,6 +693,20 @@ static BlockAIOCB *qemu_rbd_aio_writev(BlockDriverState 
> >*bs,
> >                                         BlockCompletionFunc *cb,
> >                                         void *opaque)
> >  {
> >+    BDRVRBDState *s = bs->opaque;
> >+    uint64_t total_size;
> >+    int64_t off, size;
> >+
> >+    off = sector_num * BDRV_SECTOR_SIZE;
> >+    size = nb_sectors * BDRV_SECTOR_SIZE;
> >+    rbd_get_size(s->image, &total_size);
> >+
> >+    if (off + size > total_size) {
> >+        fprintf(stdout, "Image formats that grow on demand"
> >+                        "are not supported on rbd.\n");
> >+        return NULL;
> >+    }
> >+
> >      return rbd_start_aio(bs, sector_num, qiov, nb_sectors, cb, opaque,
> >                           RBD_AIO_WRITE);
> >  }
> >
> 
> This is one of the checks librbd does itself, so we could just look for
> an EINVAL from rbd_aio_{read,write,discard} in rbd_start_aio()
> to avoid duplicating the check. An out of bounds i/o is the only way
> EINVAL can be returned from these functions in librbd.
> 

Ok, thx. Seems just need to look for an EINVAL from rbd_aio_write is ok. No
need to detect for rbd_aio_{read,discard,flush_wrapper}. 

I will submit a new version.

Regards,
Jun Li



reply via email to

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