blockjob: Use bdrv_coroutine_enter to start coroutine
Resuming and especially starting of the block job coroutine, could be issued in the main thread. However the coroutine's "home" ctx should be set to the same context as job->blk. Use bdrv_coroutine_enter to ensure that. Signed-off-by: Fam Zheng <famz@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
052a75721f
commit
aef4278c5a
@ -290,7 +290,7 @@ void block_job_start(BlockJob *job)
|
|||||||
job->pause_count--;
|
job->pause_count--;
|
||||||
job->busy = true;
|
job->busy = true;
|
||||||
job->paused = false;
|
job->paused = false;
|
||||||
qemu_coroutine_enter(job->co);
|
bdrv_coroutine_enter(blk_bs(job->blk), job->co);
|
||||||
}
|
}
|
||||||
|
|
||||||
void block_job_ref(BlockJob *job)
|
void block_job_ref(BlockJob *job)
|
||||||
@ -532,7 +532,7 @@ void block_job_user_resume(BlockJob *job)
|
|||||||
void block_job_enter(BlockJob *job)
|
void block_job_enter(BlockJob *job)
|
||||||
{
|
{
|
||||||
if (job->co && !job->busy) {
|
if (job->co && !job->busy) {
|
||||||
qemu_coroutine_enter(job->co);
|
bdrv_coroutine_enter(blk_bs(job->blk), job->co);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user