Signed-off-by: Xu Wang <cngesa...@gmail.com> --- block.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/block.c b/block.c index 6df25d9..379b79b 100644 --- a/block.c +++ b/block.c @@ -1971,6 +1971,12 @@ int bdrv_change_backing_file(BlockDriverState *bs, return -EINVAL; } + /* Check if loop exists in backing files chain after changed */ + if (bdrv_backing_file_loop_check(bs->filename, NULL, true, backing_file, + backing_fmt)) { + return -EIO; + } + if (drv->bdrv_change_backing_file != NULL) { ret = drv->bdrv_change_backing_file(bs, backing_file, backing_fmt); } else { -- 1.8.1.4