Messages in this thread | | | Subject | Re: [PATCH v1 7/8] null_blk: add error handling support for add_disk() | From | Hannes Reinecke <> | Date | Wed, 12 May 2021 19:12:03 +0200 |
| |
On 5/12/21 6:47 PM, Luis Chamberlain wrote: > On Wed, May 12, 2021 at 05:16:39PM +0200, Hannes Reinecke wrote: >> On 5/12/21 8:46 AM, Luis Chamberlain wrote: >>> 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> >>> --- >>> drivers/block/null_blk/main.c | 9 +++++++-- >>> 1 file changed, 7 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c >>> index 5f006d9e1472..2346d1292b26 100644 >>> --- a/drivers/block/null_blk/main.c >>> +++ b/drivers/block/null_blk/main.c >>> @@ -1699,6 +1699,7 @@ static int init_driver_queues(struct nullb *nullb) >>> static int null_gendisk_register(struct nullb *nullb) >>> { >>> + int ret; >>> sector_t size = ((sector_t)nullb->dev->size * SZ_1M) >> SECTOR_SHIFT; >>> struct gendisk *disk; >>> @@ -1719,13 +1720,17 @@ static int null_gendisk_register(struct nullb *nullb) >>> strncpy(disk->disk_name, nullb->disk_name, DISK_NAME_LEN); >>> if (nullb->dev->zoned) { >>> - int ret = null_register_zoned_dev(nullb); >>> + ret = null_register_zoned_dev(nullb); >>> if (ret) >>> return ret; >>> } >>> - add_disk(disk); >>> + ret = add_disk(disk); >>> + if (ret) { >> >> unregister_zoned_device() ? > > That function does not exist, do you mean null_free_zoned_dev()? If so > that is done by the caller. > What I intended to say is that you are calling 'null_register_zoned_dev()' at one point, but don't call a cleanup function if there is an error later in the path, leaving the caller to guess whether null_register_zoned_dev() has been called or not. So we should call the cleanup function here, too.
Cheers,
Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer
| |