On 25.10.21 12:17, Emanuele Giuseppe Esposito wrote:
> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> blockjob.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/blockjob.c b/blockjob.c
> index 4bad1408cb..fbd6c7d873 100644
> --- a/blockjob.c
> +++ b/blockjob.c
> @@ -83,6 +83,7 @@ BlockJob *block_job_get(const char *id)
>
> void block_job_free(Job *job)
> {
> + assert(qemu_in_main_thread());
> BlockJob *bjob = container_of(job, BlockJob, job);
Our coding style (docs/devel/style.rst) requires all statements to come
after all declarations in a block, so the assert() may not precede the
bjob declaration.
>
> block_job_remove_all_bdrv(bjob);
> @@ -436,6 +437,8 @@ void *block_job_create(const char *job_id, const BlockJobDriver *driver,
> BlockBackend *blk;
> BlockJob *job;
>
> + assert(qemu_in_main_thread());
> +
> if (job_id == NULL && !(flags & JOB_INTERNAL)) {
> job_id = bdrv_get_device_name(bs);
> }
> @@ -504,6 +507,7 @@ void block_job_iostatus_reset(BlockJob *job)
>
> void block_job_user_resume(Job *job)
> {
> + assert(qemu_in_main_thread());
> BlockJob *bjob = container_of(job, BlockJob, job);
Same here.
(And now I see that I’ve missed such instances in the other assertion
patches, like in bdrv_save_vmstate(), those should be fixed, too)
Hanna
> block_job_iostatus_reset(bjob);
> }