summaryrefslogtreecommitdiffstats
path: root/include/linux/blkdev.h
diff options
context:
space:
mode:
authorJens Axboe <axboe@fb.com>2014-04-16 10:57:18 -0600
committerJens Axboe <axboe@fb.com>2014-04-16 14:15:46 -0600
commit49fd524f95cb4cc699d435e0ebb08b1c6220da6d (patch)
tree1e9c2d2bdc14a6acaaf57b2f127fadea81528aec /include/linux/blkdev.h
parentfb1be43301ce045b5e563416e701573464a2ed96 (diff)
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>
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r--include/linux/blkdev.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 20b26d4e53a..74ee55fefcf 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -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;