diff options
author | Jeff Cody <jcody@redhat.com> | 2018-08-21 12:26:19 -0400 |
---|---|---|
committer | Jeff Cody <jcody@redhat.com> | 2018-08-21 14:59:30 -0400 |
commit | e321c0597c7590499bacab239d7f86e257f96bcd (patch) | |
tree | 887df1322c2db6108238ebc246c1e6824f79edfa /job.c | |
parent | ee135aa0428fe5af2af7be04ff16d2b596a9330a (diff) |
block: for jobs, do not clear user_paused until after the resume
The function job_cancel_async() will always cause an assert for blockjob
user resume. We set job->user_paused to false, and then call
job->driver->user_resume(). In the case of blockjobs, this is the
block_job_user_resume() function.
In that function, we assert that job.user_paused is set to true.
Unfortunately, right before calling this function, it has explicitly
been set to false.
The fix is pretty simple: set job->user_paused to false only after the
job user_resume() function has been called.
Reviewed-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Jeff Cody <jcody@redhat.com>
Message-id: bb183b77d8f2dd6bd67b8da559a90ac1e74b2052.1534868459.git.jcody@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
Diffstat (limited to 'job.c')
-rw-r--r-- | job.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -732,10 +732,10 @@ static void job_cancel_async(Job *job, bool force) { if (job->user_paused) { /* Do not call job_enter here, the caller will handle it. */ - job->user_paused = false; if (job->driver->user_resume) { job->driver->user_resume(job); } + job->user_paused = false; assert(job->pause_count > 0); job->pause_count--; } |