Hi all, I am doing an experiment on kernel 5.13 with raid_blk_init_sq_queue() which is a deprecated function but this is not a problem for my needs. * https://elixir.bootlin.com/linux/v5.13/source/block/blk-mq.c#L3074 My goal is to install a request handler which would have priority to the bio handler. The target is drivers/md/md.c and in particular the md_alloc() function: * https://elixir.bootlin.com/linux/v5.13/source/drivers/md/md.c#L5651 At line 5714 the blk_alloc_queue() is replaced with raid_blk_init_sq_queue() - mddev->queue = blk_alloc_queue(NUMA_NO_NODE); + mddev->queue = md_blk_init_sq_queue(mddev); where the md_blk_init_sq_queue() is defined as following static struct blk_mq_ops mq_ops = { .queue_rq = make_request, }; static int md_blk_init_sq_queue(struct mddev *mddev) { struct blk_mq_tag_set *tag_set; tag_set = kmalloc(sizeof(struct blk_mq_tag_set), GFP_KERNEL); if(!tag_set) return NULL; mddev->queue = blk_mq_init_sq_queue(tag_set, &mq_ops, 128, BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_STACKING); if (mddev->queue == NULL) return NULL; blk_queue_logical_block_size(mddev->queue, SECTOR_SIZE); mddev->queue->tag_set = tag_set; return mddev->queue; } The request handler make_request() is never called and I wonder why. Could you help me, please? Thank, R-