OSDN Git Service

zram: add error handling support for add_disk()
authorLuis Chamberlain <mcgrof@kernel.org>
Fri, 15 Oct 2021 23:52:14 +0000 (16:52 -0700)
committerJens Axboe <axboe@kernel.dk>
Sat, 30 Oct 2021 17:03:37 +0000 (11:03 -0600)
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>
Acked-by: Minchan Kim <minchan@kernel.org>
Link: https://lore.kernel.org/r/20211015235219.2191207-9-mcgrof@kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/zram/zram_drv.c

index a68297f..876bf19 100644 (file)
@@ -1949,7 +1949,9 @@ static int zram_add(void)
                blk_queue_max_write_zeroes_sectors(zram->disk->queue, UINT_MAX);
 
        blk_queue_flag_set(QUEUE_FLAG_STABLE_WRITES, zram->disk->queue);
-       device_add_disk(NULL, zram->disk, zram_disk_attr_groups);
+       ret = device_add_disk(NULL, zram->disk, zram_disk_attr_groups);
+       if (ret)
+               goto out_cleanup_disk;
 
        strlcpy(zram->compressor, default_compressor, sizeof(zram->compressor));
 
@@ -1957,6 +1959,8 @@ static int zram_add(void)
        pr_info("Added device: %s\n", zram->disk->disk_name);
        return device_id;
 
+out_cleanup_disk:
+       blk_cleanup_disk(zram->disk);
 out_free_idr:
        idr_remove(&zram_index_idr, device_id);
 out_free_dev: