Merge tag 'for-6.9/block-20240310' of git://git.kernel.dk/linux
[sfrench/cifs-2.6.git] / block / genhd.c
index a911d2969c0700ce98650e1d84c46d83d36f6ede..bb29a68e1d67662533653d8e74742554ae09b39a 100644 (file)
@@ -1201,7 +1201,7 @@ static int block_uevent(const struct device *dev, struct kobj_uevent_env *env)
        return add_uevent_var(env, "DISKSEQ=%llu", disk->diskseq);
 }
 
-struct class block_class = {
+const struct class block_class = {
        .name           = "block",
        .dev_uevent     = block_uevent,
 };
@@ -1391,19 +1391,21 @@ out_free_disk:
        return NULL;
 }
 
-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)
 {
+       struct queue_limits default_lim = { };
        struct request_queue *q;
        struct gendisk *disk;
 
-       q = blk_alloc_queue(node);
-       if (!q)
-               return NULL;
+       q = blk_alloc_queue(lim ? lim : &default_lim, node);
+       if (IS_ERR(q))
+               return ERR_CAST(q);
 
        disk = __alloc_disk_node(q, node, lkclass);
        if (!disk) {
                blk_put_queue(q);
-               return NULL;
+               return ERR_PTR(-ENOMEM);
        }
        set_bit(GD_OWNS_QUEUE, &disk->state);
        return disk;