aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis Chamberlain <mcgrof@kernel.org>2021-07-14 00:21:39 +0000
committerLuis Chamberlain <mcgrof@kernel.org>2021-07-14 20:57:37 -0700
commit32410056e36f4457d51df601c9a6ebc24b564652 (patch)
treed8703423741745cda6887c1c8e927930eba492bc
parent6259d97633c5582bcdac8677b36251d7d11872d2 (diff)
downloadlinux-next-32410056e36f4457d51df601c9a6ebc24b564652.tar.gz
nvdimm/blk: 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. Since ndimm/blk uses devm we just adjust the release call to check if the disk was registered before calling del_gendisk(). Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
-rw-r--r--drivers/nvdimm/blk.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/nvdimm/blk.c b/drivers/nvdimm/blk.c
index 088d3dd6f6fac..ad52164bd7203 100644
--- a/drivers/nvdimm/blk.c
+++ b/drivers/nvdimm/blk.c
@@ -230,7 +230,8 @@ static const struct block_device_operations nd_blk_fops = {
static void nd_blk_release_disk(void *disk)
{
- del_gendisk(disk);
+ if (disk->flags & GENHD_FL_UP)
+ del_gendisk(disk);
blk_cleanup_disk(disk);
}
@@ -267,7 +268,9 @@ static int nsblk_attach_disk(struct nd_namespace_blk *nsblk)
}
set_capacity(disk, available_disk_size >> SECTOR_SHIFT);
- device_add_disk(dev, disk, NULL);
+ rc = device_add_disk(dev, disk, NULL);
+ if (rc)
+ return rc;
nvdimm_check_and_set_ro(disk);
return 0;
}