diff options
author | Sean Paul <seanpaul@chromium.org> | 2018-02-16 15:47:43 -0500 |
---|---|---|
committer | Sean Paul <seanpaul@chromium.org> | 2018-02-16 15:47:43 -0500 |
commit | d4da404f36b24b089d20db1fb27d8f99cb66f409 (patch) | |
tree | 349c4b792281826652eb9e6d7a46ed6622dc90de /drivers/md/dm-kcopyd.c | |
parent | fa4127c5eb8def998fd8a471d51a4f2560dea0a2 (diff) | |
parent | 933519a5a269d8460450545adefcb5caec622cac (diff) | |
download | linux-d4da404f36b24b089d20db1fb27d8f99cb66f409.tar.gz |
Merge airlied/drm-next into drm-misc-next
Backmerge 4.15 and hdcp topic branch
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Diffstat (limited to 'drivers/md/dm-kcopyd.c')
-rw-r--r-- | drivers/md/dm-kcopyd.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/md/dm-kcopyd.c b/drivers/md/dm-kcopyd.c index eb45cc3df31d..e6e7c686646d 100644 --- a/drivers/md/dm-kcopyd.c +++ b/drivers/md/dm-kcopyd.c @@ -477,8 +477,10 @@ static int run_complete_job(struct kcopyd_job *job) * If this is the master job, the sub jobs have already * completed so we can free everything. */ - if (job->master_job == job) + if (job->master_job == job) { + mutex_destroy(&job->lock); mempool_free(job, kc->job_pool); + } fn(read_err, write_err, context); if (atomic_dec_and_test(&kc->nr_jobs)) @@ -750,6 +752,7 @@ int dm_kcopyd_copy(struct dm_kcopyd_client *kc, struct dm_io_region *from, * followed by SPLIT_COUNT sub jobs. */ job = mempool_alloc(kc->job_pool, GFP_NOIO); + mutex_init(&job->lock); /* * set up for the read. @@ -811,7 +814,6 @@ int dm_kcopyd_copy(struct dm_kcopyd_client *kc, struct dm_io_region *from, if (job->source.count <= SUB_JOB_SIZE) dispatch_job(job); else { - mutex_init(&job->lock); job->progress = 0; split_job(job); } |