From: Jeff Cody <jcody@redhat.com>
To: qemu-block@nongnu.org
Cc: peter.maydell@linaro.org, jcody@redhat.com,
qemu-devel@nongnu.org, stefanha@redhat.com,
Paolo Bonzini <pbonzini@redhat.com>
Subject: [Qemu-devel] [PULL 06/12] blockjob: move iostatus reset inside block_job_user_resume
Date: Fri, 26 May 2017 15:23:58 -0400 [thread overview]
Message-ID: <20170526192404.32186-7-jcody@redhat.com> (raw)
In-Reply-To: <20170526192404.32186-1-jcody@redhat.com>
From: Paolo Bonzini <pbonzini@redhat.com>
Outside blockjob.c, the block_job_iostatus_reset function is used once
in the monitor and once in BlockBackend. When we introduce the block
job mutex, block_job_iostatus_reset's client is going to be the block
layer (for which blockjob.c will take the block job mutex) rather than
the monitor (which will take the block job mutex by itself).
The monitor's call to block_job_iostatus_reset from the monitor comes
just before the sole call to block_job_user_resume, so reset the
iostatus directly from block_job_iostatus_reset. This will avoid
the need to introduce separate block_job_iostatus_reset and
block_job_iostatus_reset_locked APIs.
After making this change, move the function together with the others
that were moved in the previous patch.
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Message-id: 20170508141310.8674-7-pbonzini@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
---
blockdev.c | 1 -
blockjob.c | 11 ++++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index c63f4e8..892d768 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -3715,7 +3715,6 @@ void qmp_block_job_resume(const char *device, Error **errp)
}
trace_qmp_block_job_resume(job);
- block_job_iostatus_reset(job);
block_job_user_resume(job);
aio_context_release(aio_context);
}
diff --git a/blockjob.c b/blockjob.c
index a8ecb41..cd1f4c0 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -412,6 +412,7 @@ void block_job_user_resume(BlockJob *job)
{
if (job && job->user_paused && job->pause_count > 0) {
job->user_paused = false;
+ block_job_iostatus_reset(job);
block_job_resume(job);
}
}
@@ -427,11 +428,6 @@ void block_job_cancel(BlockJob *job)
}
}
-void block_job_iostatus_reset(BlockJob *job)
-{
- job->iostatus = BLOCK_DEVICE_IO_STATUS_OK;
-}
-
static int block_job_finish_sync(BlockJob *job,
void (*finish)(BlockJob *, Error **errp),
Error **errp)
@@ -767,6 +763,11 @@ void block_job_yield(BlockJob *job)
block_job_pause_point(job);
}
+void block_job_iostatus_reset(BlockJob *job)
+{
+ job->iostatus = BLOCK_DEVICE_IO_STATUS_OK;
+}
+
void block_job_event_ready(BlockJob *job)
{
job->ready = true;
--
2.9.3
next prev parent reply other threads:[~2017-05-26 19:24 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-26 19:23 [Qemu-devel] [PULL 00/12] Block patches Jeff Cody
2017-05-26 19:23 ` [Qemu-devel] [PULL 01/12] blockjob: remove unnecessary check Jeff Cody
2017-05-26 19:23 ` [Qemu-devel] [PULL 02/12] blockjob: remove iostatus_reset callback Jeff Cody
2017-05-26 19:23 ` [Qemu-devel] [PULL 03/12] blockjob: introduce block_job_early_fail Jeff Cody
2017-05-26 19:23 ` [Qemu-devel] [PULL 04/12] blockjob: introduce block_job_pause/resume_all Jeff Cody
2017-05-26 19:23 ` [Qemu-devel] [PULL 05/12] blockjob: separate monitor and blockjob APIs Jeff Cody
2017-05-26 19:23 ` Jeff Cody [this message]
2017-05-26 19:23 ` [Qemu-devel] [PULL 07/12] blockjob: introduce block_job_cancel_async, check iostatus invariants Jeff Cody
2017-05-26 19:24 ` [Qemu-devel] [PULL 08/12] blockjob: group BlockJob transaction functions together Jeff Cody
2017-05-26 19:24 ` [Qemu-devel] [PULL 09/12] blockjob: strengthen a bit test-blockjob-txn Jeff Cody
2017-05-26 19:24 ` [Qemu-devel] [PULL 10/12] blockjob: reorganize block_job_completed_txn_abort Jeff Cody
2017-05-26 19:24 ` [Qemu-devel] [PULL 11/12] blockjob: use deferred_to_main_loop to indicate the coroutine has ended Jeff Cody
2017-05-26 19:24 ` [Qemu-devel] [PULL 12/12] block/gluster: glfs_lseek() workaround Jeff Cody
2017-05-30 9:25 ` [Qemu-devel] [Qemu-block] [PULL 00/12] Block patches Stefan Hajnoczi
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=20170526192404.32186-7-jcody@redhat.com \
--to=jcody@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).