|
|
@@ -548,8 +548,10 @@ static int run_io_job(struct kcopyd_job *job)
|
|
|
* no point in continuing.
|
|
|
*/
|
|
|
if (test_bit(DM_KCOPYD_WRITE_SEQ, &job->flags) &&
|
|
|
- job->master_job->write_err)
|
|
|
+ job->master_job->write_err) {
|
|
|
+ job->write_err = job->master_job->write_err;
|
|
|
return -EIO;
|
|
|
+ }
|
|
|
|
|
|
io_job_start(job->kc->throttle);
|
|
|
|
|
|
@@ -601,6 +603,7 @@ static int process_jobs(struct list_head *jobs, struct dm_kcopyd_client *kc,
|
|
|
else
|
|
|
job->read_err = 1;
|
|
|
push(&kc->complete_jobs, job);
|
|
|
+ wake(kc);
|
|
|
break;
|
|
|
}
|
|
|
|