···12121313#define DM_MSG_PREFIX "core-rq"14141515+/*1616+ * One of these is allocated per request.1717+ */1818+struct dm_rq_target_io {1919+ struct mapped_device *md;2020+ struct dm_target *ti;2121+ struct request *orig, *clone;2222+ struct kthread_work work;2323+ blk_status_t error;2424+ union map_info info;2525+ struct dm_stats_aux stats_aux;2626+ unsigned long duration_jiffies;2727+ unsigned n_sectors;2828+ unsigned completed;2929+};3030+1531#define DM_MQ_NR_HW_QUEUES 11632#define DM_MQ_QUEUE_DEPTH 20481733static unsigned dm_mq_nr_hw_queues = DM_MQ_NR_HW_QUEUES;
-16
drivers/md/dm-rq.h
···1717struct mapped_device;18181919/*2020- * One of these is allocated per request.2121- */2222-struct dm_rq_target_io {2323- struct mapped_device *md;2424- struct dm_target *ti;2525- struct request *orig, *clone;2626- struct kthread_work work;2727- blk_status_t error;2828- union map_info info;2929- struct dm_stats_aux stats_aux;3030- unsigned long duration_jiffies;3131- unsigned n_sectors;3232- unsigned completed;3333-};3434-3535-/*3620 * For request-based dm - the bio clones we allocate are embedded in these3721 * structs.3822 *
+2-20
drivers/md/dm.c
···158158 struct dm_dev dm_dev;159159};160160161161-static struct kmem_cache *_rq_tio_cache;162162-static struct kmem_cache *_rq_cache;163163-164161/*165162 * Bio-based DM's mempools' reserved IOs set by the user.166163 */···219222220223static int __init local_init(void)221224{222222- int r = -ENOMEM;223223-224224- _rq_tio_cache = KMEM_CACHE(dm_rq_target_io, 0);225225- if (!_rq_tio_cache)226226- return r;227227-228228- _rq_cache = kmem_cache_create("dm_old_clone_request", sizeof(struct request),229229- __alignof__(struct request), 0, NULL);230230- if (!_rq_cache)231231- goto out_free_rq_tio_cache;225225+ int r;232226233227 r = dm_uevent_init();234228 if (r)235235- goto out_free_rq_cache;229229+ return r;236230237231 deferred_remove_workqueue = alloc_workqueue("kdmremove", WQ_UNBOUND, 1);238232 if (!deferred_remove_workqueue) {···245257 destroy_workqueue(deferred_remove_workqueue);246258out_uevent_exit:247259 dm_uevent_exit();248248-out_free_rq_cache:249249- kmem_cache_destroy(_rq_cache);250250-out_free_rq_tio_cache:251251- kmem_cache_destroy(_rq_tio_cache);252260253261 return r;254262}···254270 flush_scheduled_work();255271 destroy_workqueue(deferred_remove_workqueue);256272257257- kmem_cache_destroy(_rq_cache);258258- kmem_cache_destroy(_rq_tio_cache);259273 unregister_blkdev(_major, _name);260274 dm_uevent_exit();261275