blk-mq: split out tag initialization, support shared tags
authorChristoph Hellwig <hch@lst.de>
Tue, 15 Apr 2014 20:14:00 +0000 (14:14 -0600)
committerJens Axboe <axboe@fb.com>
Tue, 15 Apr 2014 20:18:02 +0000 (14:18 -0600)
Add a new blk_mq_tag_set structure that gets set up before we initialize
the queue.  A single blk_mq_tag_set structure can be shared by multiple
queues.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Modular export of blk_mq_{alloc,free}_tagset added by me.

Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq-cpumap.c
block/blk-mq-tag.c
block/blk-mq-tag.h
block/blk-mq.c
block/blk-mq.h
drivers/block/null_blk.c
drivers/block/virtio_blk.c
include/linux/blk-mq.h

index 0979213..5d0f93c 100644 (file)
@@ -80,17 +80,17 @@ int blk_mq_update_queue_map(unsigned int *map, unsigned int nr_queues)
        return 0;
 }
 
-unsigned int *blk_mq_make_queue_map(struct blk_mq_reg *reg)
+unsigned int *blk_mq_make_queue_map(struct blk_mq_tag_set *set)
 {
        unsigned int *map;
 
        /* If cpus are offline, map them to first hctx */
        map = kzalloc_node(sizeof(*map) * num_possible_cpus(), GFP_KERNEL,
-                               reg->numa_node);
+                               set->numa_node);
        if (!map)
                return NULL;
 
-       if (!blk_mq_update_queue_map(map, reg->nr_hw_queues))
+       if (!blk_mq_update_queue_map(map, set->nr_hw_queues))
                return map;
 
        kfree(map);
Simple merge
Simple merge
diff --cc block/blk-mq.c
Simple merge
diff --cc block/blk-mq.h
Simple merge
Simple merge
Simple merge
Simple merge