qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4 15/21] rbd: Handle failure for potentially la


From: Benoît Canet
Subject: Re: [Qemu-devel] [PATCH v4 15/21] rbd: Handle failure for potentially large allocations
Date: Thu, 5 Jun 2014 17:05:54 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

The Thursday 05 Jun 2014 à 15:36:27 (+0200), Kevin Wolf wrote :
> Some code in the block layer makes potentially huge allocations. Failure
> is not completely unexpected there, so avoid aborting qemu and handle
> out-of-memory situations gracefully.
> 
> This patch addresses the allocations in the rbd block driver.
> 
> Signed-off-by: Kevin Wolf <address@hidden>
> Reviewed-by: Stefan Hajnoczi <address@hidden>
> ---
>  block/rbd.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/block/rbd.c b/block/rbd.c
> index 09af484..d0b2329 100644
> --- a/block/rbd.c
> +++ b/block/rbd.c
> @@ -623,7 +623,7 @@ static BlockDriverAIOCB *rbd_start_aio(BlockDriverState 
> *bs,
>                                         RBDAIOCmd cmd)
>  {
>      RBDAIOCB *acb;
> -    RADOSCB *rcb;
> +    RADOSCB *rcb = NULL;
>      rbd_completion_t c;
>      int64_t off, size;
>      char *buf;
> @@ -637,7 +637,10 @@ static BlockDriverAIOCB *rbd_start_aio(BlockDriverState 
> *bs,
>      if (cmd == RBD_AIO_DISCARD || cmd == RBD_AIO_FLUSH) {
>          acb->bounce = NULL;
>      } else {
> -        acb->bounce = qemu_blockalign(bs, qiov->size);
> +        acb->bounce = qemu_try_blockalign(bs, qiov->size);
> +        if (acb->bounce == NULL) {
> +            goto failed;
> +        }
>      }
>      acb->ret = 0;
>      acb->error = 0;
> -- 
> 1.8.3.1
> 
> 
Reviewed-by: Benoit Canet <address@hidden>



reply via email to

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