bsg: update check for rq based driver for blk-mq
bsg currently checks ->request_fn to check whether a queue can handle struct request. But with blk-mq, we don't have a request_fn yet are request based. Add a queue_is_rq_based() helper and use that in bsg, I'm guessing this is not the last place we need to update for this. Besides, it better explains what is being checked. Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
Родитель
fb1be43301
Коммит
49fd524f95
|
@ -1008,7 +1008,7 @@ int bsg_register_queue(struct request_queue *q, struct device *parent,
|
|||
/*
|
||||
* we need a proper transport to send commands, not a stacked device
|
||||
*/
|
||||
if (!q->request_fn)
|
||||
if (!queue_is_rq_based(q))
|
||||
return 0;
|
||||
|
||||
bcd = &q->bsg_dev;
|
||||
|
|
|
@ -612,6 +612,15 @@ static inline void queue_flag_clear(unsigned int flag, struct request_queue *q)
|
|||
|
||||
#define rq_data_dir(rq) (((rq)->cmd_flags & 1) != 0)
|
||||
|
||||
/*
|
||||
* Driver can handle struct request, if it either has an old style
|
||||
* request_fn defined, or is blk-mq based.
|
||||
*/
|
||||
static inline bool queue_is_rq_based(struct request_queue *q)
|
||||
{
|
||||
return q->request_fn || q->mq_ops;
|
||||
}
|
||||
|
||||
static inline unsigned int blk_queue_cluster(struct request_queue *q)
|
||||
{
|
||||
return q->limits.cluster;
|
||||
|
|
Загрузка…
Ссылка в новой задаче