mirror of https://github.com/xemu-project/xemu.git
job: move and update comments from blockjob.c
This comment applies more on job, it was left in blockjob as in the past the whole job logic was implemented there. Note: at this stage, job_{lock/unlock} and job lock guard macros are *nop*. No functional change intended. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20220926093214.506243-7-eesposit@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
afe1e8a7b3
commit
bf61c583fc
20
blockjob.c
20
blockjob.c
|
@ -36,21 +36,6 @@
|
|||
#include "qemu/main-loop.h"
|
||||
#include "qemu/timer.h"
|
||||
|
||||
/*
|
||||
* The block job API is composed of two categories of functions.
|
||||
*
|
||||
* The first includes functions used by the monitor. The monitor is
|
||||
* peculiar in that it accesses the block job list with block_job_get, and
|
||||
* therefore needs consistency across block_job_get and the actual operation
|
||||
* (e.g. block_job_set_speed). The consistency is achieved with
|
||||
* aio_context_acquire/release. These functions are declared in blockjob.h.
|
||||
*
|
||||
* The second includes functions used by the block job drivers and sometimes
|
||||
* by the core block layer. These do not care about locking, because the
|
||||
* whole coroutine runs under the AioContext lock, and are declared in
|
||||
* blockjob_int.h.
|
||||
*/
|
||||
|
||||
static bool is_block_job(Job *job)
|
||||
{
|
||||
return job_type(job) == JOB_TYPE_BACKUP ||
|
||||
|
@ -433,11 +418,6 @@ static void block_job_event_ready(Notifier *n, void *opaque)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* API for block job drivers and the block layer. These functions are
|
||||
* declared in blockjob_int.h.
|
||||
*/
|
||||
|
||||
void *block_job_create(const char *job_id, const BlockJobDriver *driver,
|
||||
JobTxn *txn, BlockDriverState *bs, uint64_t perm,
|
||||
uint64_t shared_perm, int64_t speed, int flags,
|
||||
|
|
16
job.c
16
job.c
|
@ -32,6 +32,22 @@
|
|||
#include "trace/trace-root.h"
|
||||
#include "qapi/qapi-events-job.h"
|
||||
|
||||
/*
|
||||
* The job API is composed of two categories of functions.
|
||||
*
|
||||
* The first includes functions used by the monitor. The monitor is
|
||||
* peculiar in that it accesses the job list with job_get, and
|
||||
* therefore needs consistency across job_get and the actual operation
|
||||
* (e.g. job_user_cancel). To achieve this consistency, the caller
|
||||
* calls job_lock/job_unlock itself around the whole operation.
|
||||
*
|
||||
*
|
||||
* The second includes functions used by the job drivers and sometimes
|
||||
* by the core block layer. These delegate the locking to the callee instead.
|
||||
*
|
||||
* TODO Actually make this true
|
||||
*/
|
||||
|
||||
/*
|
||||
* job_mutex protects the jobs list, but also makes the
|
||||
* struct job fields thread-safe.
|
||||
|
|
Loading…
Reference in New Issue