All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>, famz@redhat.com
Subject: [Qemu-devel] [PULL 03/11] tests/block-job-txn: Don't start block job before adding to txn
Date: Tue, 11 Apr 2017 20:26:24 +0800	[thread overview]
Message-ID: <20170411122632.14050-4-famz@redhat.com> (raw)
In-Reply-To: <20170411122632.14050-1-famz@redhat.com>

Previously, before test_block_job_start returns, the job can already
complete, as a result, the transactional state of other jobs added to
the same txn later cannot be handled correctly.

Move the block_job_start() calls to callers after
block_job_txn_add_job() calls.

Signed-off-by: Fam Zheng <famz@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/test-blockjob-txn.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tests/test-blockjob-txn.c b/tests/test-blockjob-txn.c
index 4ccbda1..0f80194 100644
--- a/tests/test-blockjob-txn.c
+++ b/tests/test-blockjob-txn.c
@@ -110,7 +110,6 @@ static BlockJob *test_block_job_start(unsigned int iterations,
     s->result = result;
     data->job = s;
     data->result = result;
-    block_job_start(&s->common);
     return &s->common;
 }
 
@@ -123,6 +122,7 @@ static void test_single_job(int expected)
     txn = block_job_txn_new();
     job = test_block_job_start(1, true, expected, &result);
     block_job_txn_add_job(txn, job);
+    block_job_start(job);
 
     if (expected == -ECANCELED) {
         block_job_cancel(job);
@@ -164,6 +164,8 @@ static void test_pair_jobs(int expected1, int expected2)
     block_job_txn_add_job(txn, job1);
     job2 = test_block_job_start(2, true, expected2, &result2);
     block_job_txn_add_job(txn, job2);
+    block_job_start(job1);
+    block_job_start(job2);
 
     if (expected1 == -ECANCELED) {
         block_job_cancel(job1);
@@ -223,6 +225,8 @@ static void test_pair_jobs_fail_cancel_race(void)
     block_job_txn_add_job(txn, job1);
     job2 = test_block_job_start(2, false, 0, &result2);
     block_job_txn_add_job(txn, job2);
+    block_job_start(job1);
+    block_job_start(job2);
 
     block_job_cancel(job1);
 
-- 
2.9.3

  parent reply	other threads:[~2017-04-11 12:26 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-11 12:26 [Qemu-devel] [PULL 00/11] Block patches for 2.9-rc4 Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 01/11] block: Make bdrv_parent_drained_begin/end public Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 02/11] block: Quiesce old aio context during bdrv_set_aio_context Fam Zheng
2017-04-11 12:26 ` Fam Zheng [this message]
2017-04-11 12:26 ` [Qemu-devel] [PULL 04/11] coroutine: Extract qemu_aio_coroutine_enter Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 05/11] async: Introduce aio_co_enter Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 06/11] block: Introduce bdrv_coroutine_enter Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 07/11] blockjob: Use bdrv_coroutine_enter to start coroutine Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 08/11] qemu-io-cmds: Use bdrv_coroutine_enter Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 09/11] block: Use bdrv_coroutine_enter to start I/O coroutines Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 10/11] block: Fix bdrv_co_flush early return Fam Zheng
2017-04-25 15:00   ` Peter Maydell
2017-04-26  0:19     ` Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 11/11] sheepdog: Use bdrv_coroutine_enter before BDRV_POLL_WHILE Fam Zheng
2017-04-11 13:17 ` [Qemu-devel] [PULL 00/11] Block patches for 2.9-rc4 Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170411122632.14050-4-famz@redhat.com \
    --to=famz@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.