Message ID | 1373268366-14508-5-git-send-email-cngesaint@gmail.com |
---|---|
State | New |
Headers | show |
On Mon, 07/08 03:26, Xu Wang wrote: > Signed-off-by: Xu Wang <cngesaint@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, You can use bs->drv->format_name for fmt. > + 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 > >
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 {
Signed-off-by: Xu Wang <cngesaint@gmail.com> --- block.c | 6 ++++++ 1 file changed, 6 insertions(+)