mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
block: adapt bdrv_append() for inserting filters
bdrv_append is not very good for inserting filters: it does extra permission update as part of bdrv_set_backing_hd(). During this update filter may conflict with other parents of top_bs. Instead, let's first do all graph modifications and after it update permissions. append-greedy-filter test-case in test-bdrv-graph-mod is now works, so move it out of debug option. Note: bdrv_append() is still only works for backing-child based filters. It's something to improve later. Note2: we use the fact that bdrv_append() is used to append new nodes, without backing child, so we don't need frozen check and inherits_from logic from bdrv_set_backing_hd(). Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20210428151804.439460-22-vsementsov@virtuozzo.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
117caba9fc
commit
2272edcfff
2 changed files with 22 additions and 22 deletions
|
@ -388,16 +388,6 @@ static void test_append_greedy_filter(void)
|
|||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
bool debug = false;
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (!strcmp(argv[i], "-d")) {
|
||||
debug = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bdrv_init();
|
||||
qemu_init_main_loop(&error_abort);
|
||||
|
||||
|
@ -410,11 +400,8 @@ int main(int argc, char *argv[])
|
|||
test_parallel_perm_update);
|
||||
g_test_add_func("/bdrv-graph-mod/parallel-exclusive-write",
|
||||
test_parallel_exclusive_write);
|
||||
|
||||
if (debug) {
|
||||
g_test_add_func("/bdrv-graph-mod/append-greedy-filter",
|
||||
test_append_greedy_filter);
|
||||
}
|
||||
g_test_add_func("/bdrv-graph-mod/append-greedy-filter",
|
||||
test_append_greedy_filter);
|
||||
|
||||
return g_test_run();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue