dm: convert to bioset_init()/mempool_init()
Convert dm to embedded bio sets. Acked-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:

committed by
Jens Axboe

parent
afeee514ce
commit
6f1c819c21
@@ -47,7 +47,7 @@ struct dm_kcopyd_client {
|
||||
wait_queue_head_t destroyq;
|
||||
atomic_t nr_jobs;
|
||||
|
||||
mempool_t *job_pool;
|
||||
mempool_t job_pool;
|
||||
|
||||
struct workqueue_struct *kcopyd_wq;
|
||||
struct work_struct kcopyd_work;
|
||||
@@ -479,7 +479,7 @@ static int run_complete_job(struct kcopyd_job *job)
|
||||
*/
|
||||
if (job->master_job == job) {
|
||||
mutex_destroy(&job->lock);
|
||||
mempool_free(job, kc->job_pool);
|
||||
mempool_free(job, &kc->job_pool);
|
||||
}
|
||||
fn(read_err, write_err, context);
|
||||
|
||||
@@ -751,7 +751,7 @@ int dm_kcopyd_copy(struct dm_kcopyd_client *kc, struct dm_io_region *from,
|
||||
* Allocate an array of jobs consisting of one master job
|
||||
* followed by SPLIT_COUNT sub jobs.
|
||||
*/
|
||||
job = mempool_alloc(kc->job_pool, GFP_NOIO);
|
||||
job = mempool_alloc(&kc->job_pool, GFP_NOIO);
|
||||
mutex_init(&job->lock);
|
||||
|
||||
/*
|
||||
@@ -835,7 +835,7 @@ void *dm_kcopyd_prepare_callback(struct dm_kcopyd_client *kc,
|
||||
{
|
||||
struct kcopyd_job *job;
|
||||
|
||||
job = mempool_alloc(kc->job_pool, GFP_NOIO);
|
||||
job = mempool_alloc(&kc->job_pool, GFP_NOIO);
|
||||
|
||||
memset(job, 0, sizeof(struct kcopyd_job));
|
||||
job->kc = kc;
|
||||
@@ -879,7 +879,7 @@ int kcopyd_cancel(struct kcopyd_job *job, int block)
|
||||
*---------------------------------------------------------------*/
|
||||
struct dm_kcopyd_client *dm_kcopyd_client_create(struct dm_kcopyd_throttle *throttle)
|
||||
{
|
||||
int r = -ENOMEM;
|
||||
int r;
|
||||
struct dm_kcopyd_client *kc;
|
||||
|
||||
kc = kmalloc(sizeof(*kc), GFP_KERNEL);
|
||||
@@ -892,14 +892,16 @@ struct dm_kcopyd_client *dm_kcopyd_client_create(struct dm_kcopyd_throttle *thro
|
||||
INIT_LIST_HEAD(&kc->pages_jobs);
|
||||
kc->throttle = throttle;
|
||||
|
||||
kc->job_pool = mempool_create_slab_pool(MIN_JOBS, _job_cache);
|
||||
if (!kc->job_pool)
|
||||
r = mempool_init_slab_pool(&kc->job_pool, MIN_JOBS, _job_cache);
|
||||
if (r)
|
||||
goto bad_slab;
|
||||
|
||||
INIT_WORK(&kc->kcopyd_work, do_work);
|
||||
kc->kcopyd_wq = alloc_workqueue("kcopyd", WQ_MEM_RECLAIM, 0);
|
||||
if (!kc->kcopyd_wq)
|
||||
if (!kc->kcopyd_wq) {
|
||||
r = -ENOMEM;
|
||||
goto bad_workqueue;
|
||||
}
|
||||
|
||||
kc->pages = NULL;
|
||||
kc->nr_reserved_pages = kc->nr_free_pages = 0;
|
||||
@@ -923,7 +925,7 @@ bad_io_client:
|
||||
bad_client_pages:
|
||||
destroy_workqueue(kc->kcopyd_wq);
|
||||
bad_workqueue:
|
||||
mempool_destroy(kc->job_pool);
|
||||
mempool_exit(&kc->job_pool);
|
||||
bad_slab:
|
||||
kfree(kc);
|
||||
|
||||
@@ -942,7 +944,7 @@ void dm_kcopyd_client_destroy(struct dm_kcopyd_client *kc)
|
||||
destroy_workqueue(kc->kcopyd_wq);
|
||||
dm_io_client_destroy(kc->io_client);
|
||||
client_free_pages(kc);
|
||||
mempool_destroy(kc->job_pool);
|
||||
mempool_exit(&kc->job_pool);
|
||||
kfree(kc);
|
||||
}
|
||||
EXPORT_SYMBOL(dm_kcopyd_client_destroy);
|
||||
|
Reference in New Issue
Block a user