Message ID | 20170516204724.1617-3-eblake@redhat.com |
---|---|
State | New |
Headers | show |
On 05/16/2017 03:47 PM, Eric Blake wrote: > set_dirty_tracking() was assuming that the errno value set by > 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-stable@nongnu.org > Signed-off-by: Eric Blake <eblake@redhat.com> > Reviewed-by: John Snow <jsnow@redhat.com> > Reviewed-by: Juan Quintela <quintela@redhat.com> > This may still be appropriate for 2.9.1, but is no longer needed on master thanks to Paolo's work in commit 2119882c7e. I'll have to rebase and re-send this series, one patch shorter.
diff --git a/migration/block.c b/migration/block.c index 8d79d84..ecc838a 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; } }