From: Kevin Wolf Date: Tue, 6 Apr 2010 16:24:07 +0000 (+0200) Subject: block: Fix multiwrite memory leak in error case X-Git-Tag: v0.12.4~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4622317288507449ec7b9af344c265dd20c96b3a;p=thirdparty%2Fqemu.git block: Fix multiwrite memory leak in error case Previously multiwrite_user_cb was never called if a request in the multiwrite batch failed right away because it did set mcb->error immediately. Make it look more like a normal callback to fix this. Reported-by: Juan Quintela Signed-off-by: Kevin Wolf Signed-off-by: Aurelien Jarno (cherry picked from commit 7eb58a6c556c3880e6712cbf6d24d681261c5095) --- diff --git a/block.c b/block.c index d537d10b680..4f9a48b71a6 100644 --- a/block.c +++ b/block.c @@ -1761,7 +1761,8 @@ int bdrv_aio_multiwrite(BlockDriverState *bs, BlockRequest *reqs, int num_reqs) reqs[i].error = -EIO; goto fail; } else { - mcb->error = -EIO; + mcb->num_requests++; + multiwrite_cb(mcb, -EIO); break; } } else {