block: Skip implicit nodes for filename info
bdrv_refresh_filename() should simply skip all implicit nodes. They are supposed to be invisible to the user, so they should not appear in filename information. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Message-id: 20190201192935.18394-4-mreitz@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
e24518e303
commit
bb808d5f5c
14
block.c
14
block.c
@ -5549,6 +5549,20 @@ void bdrv_refresh_filename(BlockDriverState *bs)
|
||||
bdrv_refresh_filename(child->bs);
|
||||
}
|
||||
|
||||
if (bs->implicit) {
|
||||
/* For implicit nodes, just copy everything from the single child */
|
||||
child = QLIST_FIRST(&bs->children);
|
||||
assert(QLIST_NEXT(child, next) == NULL);
|
||||
|
||||
pstrcpy(bs->exact_filename, sizeof(bs->exact_filename),
|
||||
child->bs->exact_filename);
|
||||
pstrcpy(bs->filename, sizeof(bs->filename), child->bs->filename);
|
||||
|
||||
bs->full_open_options = qobject_ref(child->bs->full_open_options);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (drv->bdrv_refresh_filename) {
|
||||
/* Obsolete information is of no use here, so drop the old file name
|
||||
* information before refreshing it */
|
||||
|
Loading…
Reference in New Issue
Block a user