blockjob: introduce block_job _locked() APIs

Just as done with job.h, create _locked() functions in blockjob.h

These functions will be later useful when caller has already taken
the lock. All blockjob _locked functions call job _locked functions.

Note: at this stage, job_{lock/unlock} and job lock guard macros
are *nop*.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20220926093214.506243-8-eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Emanuele Giuseppe Esposito 2022-09-26 05:32:00 -04:00 committed by Kevin Wolf
parent bf61c583fc
commit f41ab73fa2
2 changed files with 60 additions and 10 deletions

View file

@ -92,6 +92,9 @@ typedef struct BlockJob {
*/
BlockJob *block_job_next(BlockJob *job);
/* Same as block_job_next(), but called with job lock held. */
BlockJob *block_job_next_locked(BlockJob *job);
/**
* block_job_get:
* @id: The id of the block job.
@ -102,6 +105,9 @@ BlockJob *block_job_next(BlockJob *job);
*/
BlockJob *block_job_get(const char *id);
/* Same as block_job_get(), but called with job lock held. */
BlockJob *block_job_get_locked(const char *id);
/**
* block_job_add_bdrv:
* @job: A block job
@ -145,6 +151,12 @@ bool block_job_has_bdrv(BlockJob *job, BlockDriverState *bs);
*/
bool block_job_set_speed(BlockJob *job, int64_t speed, Error **errp);
/*
* Same as block_job_set_speed(), but called with job lock held.
* Might release the lock temporarily.
*/
bool block_job_set_speed_locked(BlockJob *job, int64_t speed, Error **errp);
/**
* block_job_query:
* @job: The job to get information about.
@ -153,6 +165,9 @@ bool block_job_set_speed(BlockJob *job, int64_t speed, Error **errp);
*/
BlockJobInfo *block_job_query(BlockJob *job, Error **errp);
/* Same as block_job_query(), but called with job lock held. */
BlockJobInfo *block_job_query_locked(BlockJob *job, Error **errp);
/**
* block_job_iostatus_reset:
* @job: The job whose I/O status should be reset.
@ -162,6 +177,9 @@ BlockJobInfo *block_job_query(BlockJob *job, Error **errp);
*/
void block_job_iostatus_reset(BlockJob *job);
/* Same as block_job_iostatus_reset(), but called with job lock held. */
void block_job_iostatus_reset_locked(BlockJob *job);
/*
* block_job_get_aio_context:
*