1/* 2 * Internal header file for device mapper 3 * 4 * Copyright (C) 2016 Red Hat, Inc. All rights reserved. 5 * 6 * This file is released under the LGPL. 7 */ 8 9#ifndef DM_RQ_INTERNAL_H 10#define DM_RQ_INTERNAL_H 11 12#include <linux/bio.h> 13#include <linux/kthread.h> 14 15#include "dm-stats.h" 16 17struct mapped_device; 18 19/* 20 * For request-based dm - the bio clones we allocate are embedded in these 21 * structs. 22 * 23 * We allocate these with bio_alloc_bioset, using the front_pad parameter when 24 * the bioset is created - this means the bio has to come at the end of the 25 * struct. 26 */ 27struct dm_rq_clone_bio_info { 28 struct bio *orig; 29 struct dm_rq_target_io *tio; 30 struct bio clone; 31}; 32 33int dm_mq_init_request_queue(struct mapped_device *md, struct dm_table *t); 34void dm_mq_cleanup_mapped_device(struct mapped_device *md); 35 36void dm_start_queue(struct request_queue *q); 37void dm_stop_queue(struct request_queue *q); 38 39void dm_mq_kick_requeue_list(struct mapped_device *md); 40 41unsigned dm_get_reserved_rq_based_ios(void); 42 43ssize_t dm_attr_rq_based_seq_io_merge_deadline_show(struct mapped_device *md, char *buf); 44ssize_t dm_attr_rq_based_seq_io_merge_deadline_store(struct mapped_device *md, 45 const char *buf, size_t count); 46 47#endif 48