qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 00/13] jobs: jobs: Job Exit Refactoring Pt 2
@ 2018-08-23 22:22 John Snow
  2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 01/13] block/commit: add block job creation flags John Snow
                   ` (12 more replies)
  0 siblings, 13 replies; 28+ messages in thread
From: John Snow @ 2018-08-23 22:22 UTC (permalink / raw)
  To: qemu-block, qemu-devel
  Cc: Max Reitz, kwolf, Markus Armbruster, jtc, Jeff Cody, Eric Blake,
	Dr. David Alan Gilbert, John Snow

This is part two of a two part series that refactors the exit logic
of jobs.

This series forces all jobs to use the "finalize" semantics that were
introduced previously, but only exposed via the backup jobs.

Patches 1-3 add plumbing for the auto-dismiss and auto-finalize flags
but do not expose these via QAPI/QMP.

Patches 4-7 refactor the .exit() callbacks into the component pieces
of .prepare(), .commit(), .abort() and .clean(). Except mirror, which
I cheat with.

Patch 8 removes the last usage of .exit() in a test.
Patch 9 removes the callback and the machinery to invoke it.

Patches 10-12 expose the new QMP options to all of the jobs.
Patch 13 is a doc fixup.

"V2":
 - Split off the first part of the series to Pt.1
 - More aggressively refactored .commit()
 - Went all the way to deleting .exit() callback (Kevin)

John Snow (13):
  block/commit: add block job creation flags
  block/mirror: add block job creation flags
  block/stream: add block job creation flags
  block/commit: refactor commit to use job callbacks
  block/mirror: conservative mirror_exit refactor
  block/commit: refactor stream to use job callbacks
  tests/blockjob: replace Blockjob with Job
  tests/test-blockjob: remove exit callback
  jobs: remove .exit callback
  qapi/block-commit: expose new job properties
  qapi/block-mirror: expose new job properties
  qapi/block-stream: expose new job properties
  block/backup: qapi documentation fixup

 block/commit.c            |  95 +++++++++++++++++++++-----------------
 block/mirror.c            |  31 ++++++++++---
 block/stream.c            |  28 ++++++++----
 blockdev.c                |  44 ++++++++++++++++--
 hmp.c                     |   5 +-
 include/block/block_int.h |  15 ++++--
 include/qemu/job.h        |  11 -----
 job.c                     |  77 ++++++++++++++-----------------
 qapi/block-core.json      |  80 +++++++++++++++++++++++++++-----
 tests/test-blockjob-txn.c |   4 +-
 tests/test-blockjob.c     | 114 +++++++++++++++++++++++-----------------------
 11 files changed, 309 insertions(+), 195 deletions(-)

-- 
2.14.4

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2018-08-31 22:35 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-23 22:22 [Qemu-devel] [PATCH v2 00/13] jobs: jobs: Job Exit Refactoring Pt 2 John Snow
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 01/13] block/commit: add block job creation flags John Snow
2018-08-27 11:21   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 02/13] block/mirror: " John Snow
2018-08-27 11:25   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 03/13] block/stream: " John Snow
2018-08-27 11:26   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 04/13] block/commit: refactor commit to use job callbacks John Snow
2018-08-27 12:07   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 05/13] block/mirror: conservative mirror_exit refactor John Snow
2018-08-27 12:47   ` Max Reitz
2018-08-31 22:21     ` John Snow
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 06/13] block/commit: refactor stream to use job callbacks John Snow
2018-08-27 12:52   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 07/13] tests/blockjob: replace Blockjob with Job John Snow
2018-08-27 13:36   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 08/13] tests/test-blockjob: remove exit callback John Snow
2018-08-27 13:41   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 09/13] jobs: remove .exit callback John Snow
2018-08-27 13:47   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 10/13] qapi/block-commit: expose new job properties John Snow
2018-08-27 13:57   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 11/13] qapi/block-mirror: " John Snow
2018-08-27 13:59   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 12/13] qapi/block-stream: " John Snow
2018-08-27 14:03   ` Max Reitz
2018-08-23 22:22 ` [Qemu-devel] [PATCH v2 13/13] block/backup: qapi documentation fixup John Snow
2018-08-27 14:03   ` Max Reitz

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).