Commit 85b52a38 authored by Luis Chamberlain's avatar Luis Chamberlain Committed by Li Nan
Browse files

nbd: add error handling support for add_disk()

mainline inclusion
from mainline-v5.16-rc1
commit e1654f41
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I81XCK

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e1654f413fe08ffbc3292d8d2b8958b2cc5cb5e8



----------------------------------------

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

Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
conflict:
 drivers/block/nbd.c
Signed-off-by: default avatarZhong Jinghua <zhongjinghua@huawei.com>
Signed-off-by: default avatarLi Nan <linan122@huawei.com>
parent d0d6b007
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -1870,10 +1870,14 @@ static int nbd_dev_add(int index)
	disk->fops = &nbd_fops;
	disk->fops = &nbd_fops;
	disk->private_data = nbd;
	disk->private_data = nbd;
	sprintf(disk->disk_name, "nbd%d", index);
	sprintf(disk->disk_name, "nbd%d", index);
	add_disk(disk);
	err = add_disk_safe(disk);
	if (err)
		goto out_err_disk;
	nbd_total_devices++;
	nbd_total_devices++;
	return index;
	return index;


out_err_disk:
	blk_cleanup_disk(disk);
out_free_idr:
out_free_idr:
	idr_remove(&nbd_index_idr, index);
	idr_remove(&nbd_index_idr, index);
out_free_tags:
out_free_tags: