This probably wants a little explanation..
> struct nvme_rdma_ctrl *ctrl = set->driver_data;
> + struct blk_mq_queue_map *map;
> + int offset = 0;
> +
> + if (ctrl->ctrl.opts->nr_write_queues) {
> + /* separate read/write queues */
> + map = &set->map[HCTX_TYPE_DEFAULT];
> + map->queue_offset = offset;
> + map->nr_queues = ctrl->ctrl.opts->nr_write_queues;
> + blk_mq_rdma_map_queues(map, ctrl->device->dev, 0);
> + offset += map->nr_queues;
> +
> + map = &set->map[HCTX_TYPE_READ];
> + map->nr_queues = ctrl->ctrl.opts->nr_io_queues;
> + map->queue_offset = offset;
> + blk_mq_rdma_map_queues(map, ctrl->device->dev, offset);
> + offset += map->nr_queues;
>
> + } else {
> + /* mixed read/write queues */
> + map = &set->map[HCTX_TYPE_DEFAULT];
> + map->queue_offset = 0;
> + map->nr_queues = ctrl->ctrl.opts->nr_io_queues;
> + blk_mq_rdma_map_queues(map, ctrl->device->dev, 0);
> +
> + map = &set->map[HCTX_TYPE_READ];
> + map->queue_offset = 0;
> + map->nr_queues = ctrl->ctrl.opts->nr_io_queues;
> + blk_mq_rdma_map_queues(map, ctrl->device->dev, 0);
> + }
Same comment and suggested style as for the TCP one.