[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 14/19] blockjob: block_job_get_aio_context is a GS function
From: |
Emanuele Giuseppe Esposito |
Subject: |
[PATCH v4 14/19] blockjob: block_job_get_aio_context is a GS function |
Date: |
Fri, 28 Jan 2022 06:50:26 -0500 |
Move block_job_get_aio_context under the GS category in blockjob.h,
as it is always called with the BQL held.
This is done also to simplify the coming job->aiocontext protection.
For more infos about the GS API, see include/block/block-global-state.h
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
---
blockjob.c | 1 +
include/block/blockjob.h | 15 ++++++++-------
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/blockjob.c b/blockjob.c
index a6c94b6b64..04d868f020 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -568,5 +568,6 @@ BlockErrorAction block_job_error_action(BlockJob *job,
BlockdevOnError on_err,
AioContext *block_job_get_aio_context(BlockJob *job)
{
+ assert(qemu_in_main_thread());
return job->job.aio_context;
}
diff --git a/include/block/blockjob.h b/include/block/blockjob.h
index a9a6cf2b84..376cd95877 100644
--- a/include/block/blockjob.h
+++ b/include/block/blockjob.h
@@ -169,6 +169,14 @@ BlockJobInfo *block_job_query_locked(BlockJob *job, Error
**errp);
*/
void block_job_iostatus_reset_locked(BlockJob *job);
+/*
+ * block_job_get_aio_context:
+ *
+ * Returns aio context associated with a block job.
+ */
+AioContext *block_job_get_aio_context(BlockJob *job);
+
+
/* Common functions that are neither I/O nor Global State */
/**
@@ -186,11 +194,4 @@ bool block_job_is_internal(BlockJob *job);
*/
const BlockJobDriver *block_job_driver(BlockJob *job);
-/*
- * block_job_get_aio_context:
- *
- * Returns aio context associated with a block job.
- */
-AioContext *block_job_get_aio_context(BlockJob *job);
-
#endif
--
2.31.1
- [PATCH v4 00/19] job: replace AioContext lock with job_mutex, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 01/19] job.c: make job_mutex and job_lock/unlock() public, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 02/19] job.h: categorize fields in struct Job, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 04/19] job.c: move inner aiocontext lock in callbacks, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 03/19] job.c: make job_event_* functions static, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 05/19] aio-wait.h: introduce AIO_WAIT_WHILE_UNLOCKED, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 07/19] jobs: protect jobs with job_lock/unlock, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 14/19] blockjob: block_job_get_aio_context is a GS function,
Emanuele Giuseppe Esposito <=
- [PATCH v4 06/19] jobs: remove aiocontext locks since the functions are under BQL, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 09/19] jobs: use job locks also in the unit tests, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 16/19] job: detect change of aiocontext within job coroutine, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 12/19] job.h: define unlocked functions, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 17/19] jobs: protect job.aio_context with BQL and job_mutex, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 18/19] job.c: enable job lock/unlock and remove Aiocontext locks, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 19/19] block_job_query: remove atomic read, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 11/19] jobs: document all static functions and add _locked() suffix, Emanuele Giuseppe Esposito, 2022/01/28
- [PATCH v4 08/19] jobs: add job lock in find_* functions, Emanuele Giuseppe Esposito, 2022/01/28