aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2017-12-14 10:12:42 +0100
committerKevin Wolf <kwolf@redhat.com>2017-12-22 15:05:32 +0100
commit8119334918e86f45877cfc139192d54f2449a239 (patch)
treeb1904d3a3dfc722ee772038d211d78d7437dea6c
parent7253220de42e82c59e72f29e69285a9a9e9e96ee (diff)
block: Don't block_job_pause_all() in bdrv_drain_all()
Block jobs are already paused using the BdrvChildRole drain callbacks, so we don't need an additional block_job_pause_all() call. Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r--block/io.c4
-rw-r--r--tests/test-bdrv-drain.c10
2 files changed, 4 insertions, 10 deletions
diff --git a/block/io.c b/block/io.c
index 91a52e2d82..74d2e5278e 100644
--- a/block/io.c
+++ b/block/io.c
@@ -338,8 +338,6 @@ void bdrv_drain_all_begin(void)
* context. */
assert(qemu_get_current_aio_context() == qemu_get_aio_context());
- block_job_pause_all();
-
for (bs = bdrv_first(&it); bs; bs = bdrv_next(&it)) {
AioContext *aio_context = bdrv_get_aio_context(bs);
@@ -395,8 +393,6 @@ void bdrv_drain_all_end(void)
aio_enable_external(aio_context);
aio_context_release(aio_context);
}
-
- block_job_resume_all();
}
void bdrv_drain_all(void)
diff --git a/tests/test-bdrv-drain.c b/tests/test-bdrv-drain.c
index 9783768a20..6da66ae841 100644
--- a/tests/test-bdrv-drain.c
+++ b/tests/test-bdrv-drain.c
@@ -284,9 +284,8 @@ static void test_blockjob_common(enum drain_type drain_type)
do_drain_begin(drain_type, src);
if (drain_type == BDRV_DRAIN_ALL) {
- /* bdrv_drain_all() drains both src and target, and involves an
- * additional block_job_pause_all() */
- g_assert_cmpint(job->pause_count, ==, 3);
+ /* bdrv_drain_all() drains both src and target */
+ g_assert_cmpint(job->pause_count, ==, 2);
} else {
g_assert_cmpint(job->pause_count, ==, 1);
}
@@ -303,9 +302,8 @@ static void test_blockjob_common(enum drain_type drain_type)
do_drain_begin(drain_type, target);
if (drain_type == BDRV_DRAIN_ALL) {
- /* bdrv_drain_all() drains both src and target, and involves an
- * additional block_job_pause_all() */
- g_assert_cmpint(job->pause_count, ==, 3);
+ /* bdrv_drain_all() drains both src and target */
+ g_assert_cmpint(job->pause_count, ==, 2);
} else {
g_assert_cmpint(job->pause_count, ==, 1);
}