[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 15/21] rbd: Handle failure for potentially la
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v3 15/21] rbd: Handle failure for potentially large allocations |
Date: |
Thu, 5 Jun 2014 15:29:06 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 03.06.2014 um 17:43 hat Benoît Canet geschrieben:
> The Tuesday 03 Jun 2014 à 15:10:56 (+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);
> I am under the impression that acb->bounce will be leaked in next goto failed.
Yes, I think you're right. That's a preexisting problem, though. I'll
fix it in a patch independent from this series.
Kevin
- [Qemu-devel] [PATCH v3 13/21] raw-posix: Handle failure for potentially large allocations, (continued)
- [Qemu-devel] [PATCH v3 13/21] raw-posix: Handle failure for potentially large allocations, Kevin Wolf, 2014/06/03
- [Qemu-devel] [PATCH v3 14/21] raw-win32: Handle failure for potentially large allocations, Kevin Wolf, 2014/06/03
- [Qemu-devel] [PATCH v3 16/21] vdi: Handle failure for potentially large allocations, Kevin Wolf, 2014/06/03
- [Qemu-devel] [PATCH v3 18/21] vmdk: Handle failure for potentially large allocations, Kevin Wolf, 2014/06/03
- [Qemu-devel] [PATCH v3 15/21] rbd: Handle failure for potentially large allocations, Kevin Wolf, 2014/06/03
- [Qemu-devel] [PATCH v3 17/21] vhdx: Handle failure for potentially large allocations, Kevin Wolf, 2014/06/03
- [Qemu-devel] [PATCH v3 19/21] vpc: Handle failure for potentially large allocations, Kevin Wolf, 2014/06/03
- [Qemu-devel] [PATCH v3 20/21] mirror: Handle failure for potentially large allocations, Kevin Wolf, 2014/06/03
- [Qemu-devel] [PATCH v3 21/21] qcow2: Return useful error code in refcount_init(), Kevin Wolf, 2014/06/03