mirror of https://github.com/proxmox/mirror_qemu
block: Fix error path in bdrv_invalidate_cache()
We can only clear BDRV_O_INCOMING if the caches were actually invalidated. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>master
parent
09e0c771e4
commit
23c88b2472
2
block.c
2
block.c
|
@ -3272,12 +3272,14 @@ void bdrv_invalidate_cache(BlockDriverState *bs, Error **errp)
|
||||||
bdrv_invalidate_cache(bs->file->bs, &local_err);
|
bdrv_invalidate_cache(bs->file->bs, &local_err);
|
||||||
}
|
}
|
||||||
if (local_err) {
|
if (local_err) {
|
||||||
|
bs->open_flags |= BDRV_O_INCOMING;
|
||||||
error_propagate(errp, local_err);
|
error_propagate(errp, local_err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = refresh_total_sectors(bs, bs->total_sectors);
|
ret = refresh_total_sectors(bs, bs->total_sectors);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
bs->open_flags |= BDRV_O_INCOMING;
|
||||||
error_setg_errno(errp, -ret, "Could not refresh total sector count");
|
error_setg_errno(errp, -ret, "Could not refresh total sector count");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue