Message ID | 20170412174920.8744-3-eblake@redhat.com |
---|---|
State | New |
Headers | show |
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-stable@nongnu.org > Signed-off-by: Eric Blake <eblake@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 <jsnow@redhat.com>
Eric Blake <eblake@redhat.com> wrote: > set_drity_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: Juan Quintela <quintela@redhat.com>
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; } }
set_drity_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> --- migration/block.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)