Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

block/brd: add error handling support for add_disk()

We never checked for errors on add_disk() as this function
returned void. Now that this is fixed, use the shiny new
error handling.

Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Link: https://lore.kernel.org/r/20211015235219.2191207-2-mcgrof@kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Luis Chamberlain and committed by
Jens Axboe
e1528830 3c30883a

+7 -2
+7 -2
drivers/block/brd.c
··· 370 370 struct brd_device *brd; 371 371 struct gendisk *disk; 372 372 char buf[DISK_NAME_LEN]; 373 + int err = -ENOMEM; 373 374 374 375 mutex_lock(&brd_devices_mutex); 375 376 list_for_each_entry(brd, &brd_devices, brd_list) { ··· 421 420 /* Tell the block layer that this is not a rotational device */ 422 421 blk_queue_flag_set(QUEUE_FLAG_NONROT, disk->queue); 423 422 blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, disk->queue); 424 - add_disk(disk); 423 + err = add_disk(disk); 424 + if (err) 425 + goto out_cleanup_disk; 425 426 426 427 return 0; 427 428 429 + out_cleanup_disk: 430 + blk_cleanup_disk(disk); 428 431 out_free_dev: 429 432 mutex_lock(&brd_devices_mutex); 430 433 list_del(&brd->brd_list); 431 434 mutex_unlock(&brd_devices_mutex); 432 435 kfree(brd); 433 - return -ENOMEM; 436 + return err; 434 437 } 435 438 436 439 static void brd_probe(dev_t dev)