block: allow specifying size for extra command data
This mirrors the blk-mq capabilities to allocate extra drivers-specific data behind struct request by setting a cmd_size field, as well as having a constructor / destructor for it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:

committed by
Jens Axboe

parent
5ea708d15a
commit
6d247d7f71
@@ -273,6 +273,8 @@ typedef void (softirq_done_fn)(struct request *);
|
||||
typedef int (dma_drain_needed_fn)(struct request *);
|
||||
typedef int (lld_busy_fn) (struct request_queue *q);
|
||||
typedef int (bsg_job_fn) (struct bsg_job *);
|
||||
typedef int (init_rq_fn)(struct request_queue *, struct request *, gfp_t);
|
||||
typedef void (exit_rq_fn)(struct request_queue *, struct request *);
|
||||
|
||||
enum blk_eh_timer_return {
|
||||
BLK_EH_NOT_HANDLED,
|
||||
@@ -408,6 +410,8 @@ struct request_queue {
|
||||
rq_timed_out_fn *rq_timed_out_fn;
|
||||
dma_drain_needed_fn *dma_drain_needed;
|
||||
lld_busy_fn *lld_busy_fn;
|
||||
init_rq_fn *init_rq_fn;
|
||||
exit_rq_fn *exit_rq_fn;
|
||||
|
||||
const struct blk_mq_ops *mq_ops;
|
||||
|
||||
@@ -577,6 +581,9 @@ struct request_queue {
|
||||
#endif
|
||||
|
||||
bool mq_sysfs_init_done;
|
||||
|
||||
size_t cmd_size;
|
||||
void *rq_alloc_data;
|
||||
};
|
||||
|
||||
#define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */
|
||||
|
Reference in New Issue
Block a user