[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH 0/7] jobs: remove job_defer_to_main_loop
From: |
John Snow |
Subject: |
[Qemu-block] [PATCH 0/7] jobs: remove job_defer_to_main_loop |
Date: |
Fri, 17 Aug 2018 15:04:50 -0400 |
First, it's redundant to have each job manage this itself.
Second, doing so allows us to remove a tricky case where the completion
code is called under an aio_context lock, which then calls the
finalization code which is itself executed under a second aio_context
lock.
Removing this recursive lock acquisition is necessary for converting
mirror to only modify its graph post-finalization, but it's also just
safer and will bite us less in the future.
This series introduces a .job_exit callback, but after jobs are
fully transitioned to using the .commit/.abort callbacks, this new
completion callback will be removed.
John Snow (7):
jobs: change start callback to run callback
jobs: canonize Error object
jobs: add exit shim
block/commit: utilize job_exit shim
block/mirror: utilize job_exit shim
jobs: utilize job_exit shim
jobs: remove job_defer_to_main_loop
block/backup.c | 23 +++-------------
block/commit.c | 27 ++++++-------------
block/create.c | 19 +++++--------
block/mirror.c | 35 +++++++++++-------------
block/stream.c | 29 ++++++++------------
include/qemu/job.h | 36 +++++++++----------------
job-qmp.c | 5 ++--
job.c | 68 +++++++++++++++--------------------------------
tests/test-bdrv-drain.c | 13 +++------
tests/test-blockjob-txn.c | 25 +++++++----------
tests/test-blockjob.c | 17 ++++++------
11 files changed, 102 insertions(+), 195 deletions(-)
--
2.14.4
[Qemu-block] [PATCH 5/7] block/mirror: utilize job_exit shim, John Snow, 2018/08/17