On 04/12/2017 01:49 PM, Eric Blake wrote: > set_drity_tracking() was assuming that the errno value set by
*cough* > bdrv_create_dirty_bitmap() would not be corrupted by either > blk_get_aio_context() or aio_context_release(). Rather than > audit whether this assumption is safe, rewrite the code to just > grab the value of errno sooner. > > CC: qemu-sta...@nongnu.org > Signed-off-by: Eric Blake <ebl...@redhat.com> > --- > migration/block.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/migration/block.c b/migration/block.c > index 18d50ff..9a9c214 100644 > --- a/migration/block.c > +++ b/migration/block.c > @@ -350,9 +350,9 @@ static int set_dirty_tracking(void) > aio_context_acquire(blk_get_aio_context(bmds->blk)); > bmds->dirty_bitmap = bdrv_create_dirty_bitmap(blk_bs(bmds->blk), > BLOCK_SIZE, NULL, > NULL); > + ret = -errno; > aio_context_release(blk_get_aio_context(bmds->blk)); > if (!bmds->dirty_bitmap) { > - ret = -errno; > goto fail; > } > } > Reviewed-by: John Snow <js...@redhat.com>