blockjob: do not cancel timer in resume
commit4c7e813ce964e230bb55cf4afc862ccb091ca3a3
authorStefan Hajnoczi <stefanha@redhat.com>
Tue, 8 May 2018 13:54:36 +0000 (8 14:54 +0100)
committerJeff Cody <jcody@redhat.com>
Wed, 16 May 2018 17:37:33 +0000 (16 13:37 -0400)
tree44504ffef0fa6b2e86e526418d775c93dcd60d10
parentddf2d98a94c8a98a661a217fb629cfd15f4dcec7
blockjob: do not cancel timer in resume

Currently the timer is cancelled and the block job is entered by
block_job_resume().  This behavior causes drain to run extra blockjob
iterations when the job was sleeping due to the ratelimit.

This patch leaves the job asleep when block_job_resume() is called.
Jobs can still be forcibly woken up using block_job_enter(), which is
used to cancel jobs.

After this patch drain no longer runs extra blockjob iterations.  This
is the expected behavior that qemu-iotests 185 used to rely on.  We
temporarily changed the 185 test output to make it pass for the QEMU
2.12 release but now it's time to address this issue.

Cc: QingFeng Hao <haoqf@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: QingFeng Hao <haoqf@linux.vnet.ibm.com>
Message-id: 20180508135436.30140-3-stefanha@redhat.com
Reviewed-by: Jeff Cody <jcody@redhat.com>
Signed-off-by: Jeff Cody <jcody@redhat.com>
blockjob.c
tests/qemu-iotests/185
tests/qemu-iotests/185.out