|
@@ -807,9 +807,9 @@ static void test_blockjob_common_drain_node(enum drain_type drain_type,
|
|
tjob->bs = src;
|
|
tjob->bs = src;
|
|
job = &tjob->common;
|
|
job = &tjob->common;
|
|
|
|
|
|
- bdrv_graph_wrlock(target);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
block_job_add_bdrv(job, "target", target, 0, BLK_PERM_ALL, &error_abort);
|
|
block_job_add_bdrv(job, "target", target, 0, BLK_PERM_ALL, &error_abort);
|
|
- bdrv_graph_wrunlock(target);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
|
|
|
|
switch (result) {
|
|
switch (result) {
|
|
case TEST_JOB_SUCCESS:
|
|
case TEST_JOB_SUCCESS:
|
|
@@ -991,11 +991,11 @@ static void bdrv_test_top_close(BlockDriverState *bs)
|
|
{
|
|
{
|
|
BdrvChild *c, *next_c;
|
|
BdrvChild *c, *next_c;
|
|
|
|
|
|
- bdrv_graph_wrlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
QLIST_FOREACH_SAFE(c, &bs->children, next, next_c) {
|
|
QLIST_FOREACH_SAFE(c, &bs->children, next, next_c) {
|
|
bdrv_unref_child(bs, c);
|
|
bdrv_unref_child(bs, c);
|
|
}
|
|
}
|
|
- bdrv_graph_wrunlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
}
|
|
}
|
|
|
|
|
|
static int coroutine_fn GRAPH_RDLOCK
|
|
static int coroutine_fn GRAPH_RDLOCK
|
|
@@ -1085,10 +1085,10 @@ static void do_test_delete_by_drain(bool detach_instead_of_delete,
|
|
|
|
|
|
null_bs = bdrv_open("null-co://", NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
|
|
null_bs = bdrv_open("null-co://", NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
|
|
&error_abort);
|
|
&error_abort);
|
|
- bdrv_graph_wrlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
bdrv_attach_child(bs, null_bs, "null-child", &child_of_bds,
|
|
bdrv_attach_child(bs, null_bs, "null-child", &child_of_bds,
|
|
BDRV_CHILD_DATA, &error_abort);
|
|
BDRV_CHILD_DATA, &error_abort);
|
|
- bdrv_graph_wrunlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
|
|
|
|
/* This child will be the one to pass to requests through to, and
|
|
/* This child will be the one to pass to requests through to, and
|
|
* it will stall until a drain occurs */
|
|
* it will stall until a drain occurs */
|
|
@@ -1096,21 +1096,21 @@ static void do_test_delete_by_drain(bool detach_instead_of_delete,
|
|
&error_abort);
|
|
&error_abort);
|
|
child_bs->total_sectors = 65536 >> BDRV_SECTOR_BITS;
|
|
child_bs->total_sectors = 65536 >> BDRV_SECTOR_BITS;
|
|
/* Takes our reference to child_bs */
|
|
/* Takes our reference to child_bs */
|
|
- bdrv_graph_wrlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
tts->wait_child = bdrv_attach_child(bs, child_bs, "wait-child",
|
|
tts->wait_child = bdrv_attach_child(bs, child_bs, "wait-child",
|
|
&child_of_bds,
|
|
&child_of_bds,
|
|
BDRV_CHILD_DATA | BDRV_CHILD_PRIMARY,
|
|
BDRV_CHILD_DATA | BDRV_CHILD_PRIMARY,
|
|
&error_abort);
|
|
&error_abort);
|
|
- bdrv_graph_wrunlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
|
|
|
|
/* This child is just there to be deleted
|
|
/* This child is just there to be deleted
|
|
* (for detach_instead_of_delete == true) */
|
|
* (for detach_instead_of_delete == true) */
|
|
null_bs = bdrv_open("null-co://", NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
|
|
null_bs = bdrv_open("null-co://", NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
|
|
&error_abort);
|
|
&error_abort);
|
|
- bdrv_graph_wrlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
bdrv_attach_child(bs, null_bs, "null-child", &child_of_bds, BDRV_CHILD_DATA,
|
|
bdrv_attach_child(bs, null_bs, "null-child", &child_of_bds, BDRV_CHILD_DATA,
|
|
&error_abort);
|
|
&error_abort);
|
|
- bdrv_graph_wrunlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
|
|
|
|
blk = blk_new(qemu_get_aio_context(), BLK_PERM_ALL, BLK_PERM_ALL);
|
|
blk = blk_new(qemu_get_aio_context(), BLK_PERM_ALL, BLK_PERM_ALL);
|
|
blk_insert_bs(blk, bs, &error_abort);
|
|
blk_insert_bs(blk, bs, &error_abort);
|
|
@@ -1193,14 +1193,14 @@ static void no_coroutine_fn detach_indirect_bh(void *opaque)
|
|
|
|
|
|
bdrv_dec_in_flight(data->child_b->bs);
|
|
bdrv_dec_in_flight(data->child_b->bs);
|
|
|
|
|
|
- bdrv_graph_wrlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
bdrv_unref_child(data->parent_b, data->child_b);
|
|
bdrv_unref_child(data->parent_b, data->child_b);
|
|
|
|
|
|
bdrv_ref(data->c);
|
|
bdrv_ref(data->c);
|
|
data->child_c = bdrv_attach_child(data->parent_b, data->c, "PB-C",
|
|
data->child_c = bdrv_attach_child(data->parent_b, data->c, "PB-C",
|
|
&child_of_bds, BDRV_CHILD_DATA,
|
|
&child_of_bds, BDRV_CHILD_DATA,
|
|
&error_abort);
|
|
&error_abort);
|
|
- bdrv_graph_wrunlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
}
|
|
}
|
|
|
|
|
|
static void coroutine_mixed_fn detach_by_parent_aio_cb(void *opaque, int ret)
|
|
static void coroutine_mixed_fn detach_by_parent_aio_cb(void *opaque, int ret)
|
|
@@ -1298,7 +1298,7 @@ static void TSA_NO_TSA test_detach_indirect(bool by_parent_cb)
|
|
/* Set child relationships */
|
|
/* Set child relationships */
|
|
bdrv_ref(b);
|
|
bdrv_ref(b);
|
|
bdrv_ref(a);
|
|
bdrv_ref(a);
|
|
- bdrv_graph_wrlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
child_b = bdrv_attach_child(parent_b, b, "PB-B", &child_of_bds,
|
|
child_b = bdrv_attach_child(parent_b, b, "PB-B", &child_of_bds,
|
|
BDRV_CHILD_DATA, &error_abort);
|
|
BDRV_CHILD_DATA, &error_abort);
|
|
child_a = bdrv_attach_child(parent_b, a, "PB-A", &child_of_bds,
|
|
child_a = bdrv_attach_child(parent_b, a, "PB-A", &child_of_bds,
|
|
@@ -1308,7 +1308,7 @@ static void TSA_NO_TSA test_detach_indirect(bool by_parent_cb)
|
|
bdrv_attach_child(parent_a, a, "PA-A",
|
|
bdrv_attach_child(parent_a, a, "PA-A",
|
|
by_parent_cb ? &child_of_bds : &detach_by_driver_cb_class,
|
|
by_parent_cb ? &child_of_bds : &detach_by_driver_cb_class,
|
|
BDRV_CHILD_DATA, &error_abort);
|
|
BDRV_CHILD_DATA, &error_abort);
|
|
- bdrv_graph_wrunlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
|
|
|
|
g_assert_cmpint(parent_a->refcnt, ==, 1);
|
|
g_assert_cmpint(parent_a->refcnt, ==, 1);
|
|
g_assert_cmpint(parent_b->refcnt, ==, 1);
|
|
g_assert_cmpint(parent_b->refcnt, ==, 1);
|
|
@@ -1727,7 +1727,7 @@ static void test_drop_intermediate_poll(void)
|
|
* Establish the chain last, so the chain links are the first
|
|
* Establish the chain last, so the chain links are the first
|
|
* elements in the BDS.parents lists
|
|
* elements in the BDS.parents lists
|
|
*/
|
|
*/
|
|
- bdrv_graph_wrlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
for (i = 0; i < 3; i++) {
|
|
for (i = 0; i < 3; i++) {
|
|
if (i) {
|
|
if (i) {
|
|
/* Takes the reference to chain[i - 1] */
|
|
/* Takes the reference to chain[i - 1] */
|
|
@@ -1735,7 +1735,7 @@ static void test_drop_intermediate_poll(void)
|
|
&chain_child_class, BDRV_CHILD_COW, &error_abort);
|
|
&chain_child_class, BDRV_CHILD_COW, &error_abort);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- bdrv_graph_wrunlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
|
|
|
|
job = block_job_create("job", &test_simple_job_driver, NULL, job_node,
|
|
job = block_job_create("job", &test_simple_job_driver, NULL, job_node,
|
|
0, BLK_PERM_ALL, 0, 0, NULL, NULL, &error_abort);
|
|
0, BLK_PERM_ALL, 0, 0, NULL, NULL, &error_abort);
|
|
@@ -1982,10 +1982,10 @@ static void do_test_replace_child_mid_drain(int old_drain_count,
|
|
new_child_bs->total_sectors = 1;
|
|
new_child_bs->total_sectors = 1;
|
|
|
|
|
|
bdrv_ref(old_child_bs);
|
|
bdrv_ref(old_child_bs);
|
|
- bdrv_graph_wrlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
bdrv_attach_child(parent_bs, old_child_bs, "child", &child_of_bds,
|
|
bdrv_attach_child(parent_bs, old_child_bs, "child", &child_of_bds,
|
|
BDRV_CHILD_COW, &error_abort);
|
|
BDRV_CHILD_COW, &error_abort);
|
|
- bdrv_graph_wrunlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
parent_s->setup_completed = true;
|
|
parent_s->setup_completed = true;
|
|
|
|
|
|
for (i = 0; i < old_drain_count; i++) {
|
|
for (i = 0; i < old_drain_count; i++) {
|
|
@@ -2016,9 +2016,9 @@ static void do_test_replace_child_mid_drain(int old_drain_count,
|
|
g_assert(parent_bs->quiesce_counter == old_drain_count);
|
|
g_assert(parent_bs->quiesce_counter == old_drain_count);
|
|
bdrv_drained_begin(old_child_bs);
|
|
bdrv_drained_begin(old_child_bs);
|
|
bdrv_drained_begin(new_child_bs);
|
|
bdrv_drained_begin(new_child_bs);
|
|
- bdrv_graph_wrlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrlock();
|
|
bdrv_replace_node(old_child_bs, new_child_bs, &error_abort);
|
|
bdrv_replace_node(old_child_bs, new_child_bs, &error_abort);
|
|
- bdrv_graph_wrunlock(NULL);
|
|
|
|
|
|
+ bdrv_graph_wrunlock();
|
|
bdrv_drained_end(new_child_bs);
|
|
bdrv_drained_end(new_child_bs);
|
|
bdrv_drained_end(old_child_bs);
|
|
bdrv_drained_end(old_child_bs);
|
|
g_assert(parent_bs->quiesce_counter == new_drain_count);
|
|
g_assert(parent_bs->quiesce_counter == new_drain_count);
|