block: pass a queue_limits argument to blk_alloc_disk
Pass a queue_limits to blk_alloc_disk and apply it if non-NULL. This will allow allocating queues with valid queue limits instead of setting the values one at a time later. Also change blk_alloc_disk to return an ERR_PTR instead of just NULL which can't distinguish errors. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com> Link: https://lore.kernel.org/r/20240215071055.2201424-2-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
31edf4bbe0
commit
74fa8f9c55
@@ -766,22 +766,26 @@ static inline u64 sb_bdev_nr_blocks(struct super_block *sb)
|
||||
int bdev_disk_changed(struct gendisk *disk, bool invalidate);
|
||||
|
||||
void put_disk(struct gendisk *disk);
|
||||
struct gendisk *__blk_alloc_disk(int node, struct lock_class_key *lkclass);
|
||||
struct gendisk *__blk_alloc_disk(struct queue_limits *lim, int node,
|
||||
struct lock_class_key *lkclass);
|
||||
|
||||
/**
|
||||
* blk_alloc_disk - allocate a gendisk structure
|
||||
* @lim: queue limits to be used for this disk.
|
||||
* @node_id: numa node to allocate on
|
||||
*
|
||||
* Allocate and pre-initialize a gendisk structure for use with BIO based
|
||||
* drivers.
|
||||
*
|
||||
* Returns an ERR_PTR on error, else the allocated disk.
|
||||
*
|
||||
* Context: can sleep
|
||||
*/
|
||||
#define blk_alloc_disk(node_id) \
|
||||
#define blk_alloc_disk(lim, node_id) \
|
||||
({ \
|
||||
static struct lock_class_key __key; \
|
||||
\
|
||||
__blk_alloc_disk(node_id, &__key); \
|
||||
__blk_alloc_disk(lim, node_id, &__key); \
|
||||
})
|
||||
|
||||
int __register_blkdev(unsigned int major, const char *name,
|
||||
|
||||
Reference in New Issue
Block a user