]> git.ipfire.org Git - thirdparty/qemu.git/commit
job: call job_enter from job_pause
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Sat, 16 Jan 2021 21:46:51 +0000 (00:46 +0300)
committerMax Reitz <mreitz@redhat.com>
Tue, 26 Jan 2021 13:36:37 +0000 (14:36 +0100)
commit3ee1483b95f314b960231c1c0b329bea4346f49c
tree00a1b261ffa596adcbe450bd89c9a9bcc1cf086e
parente0323a045f5929721c9f4b7437229f1dbdc5b5e5
job: call job_enter from job_pause

If main job coroutine called job_yield (while some background process
is in progress), we should give it a chance to call job_pause_point().
It will be used in backup, when moved on async block-copy.

Note, that job_user_pause is not enough: we want to handle
child_job_drained_begin() as well, which call job_pause().

Still, if job is already in job_do_yield() in job_pause_point() we
should not enter it.

iotest 109 output is modified: on stop we do bdrv_drain_all() which now
triggers job pause immediately (and pause after ready is standby).

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210116214705.822267-10-vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
job.c
tests/qemu-iotests/109.out