summaryrefslogtreecommitdiffstats
path: root/drivers/nvdimm/label.c
diff options
context:
space:
mode:
authorZhang Qilong <zhangqilong3@huawei.com>2020-12-05 12:50:56 +0100
committerDan Williams <dan.j.williams@intel.com>2020-12-17 01:53:00 +0100
commit4c46764733c85b82c07e9559b39da4d00a7dd659 (patch)
treed6e272f97377e641195786300d5f7953f4425f32 /drivers/nvdimm/label.c
parentlibnvdimm: Cleanup include of badblocks.h (diff)
downloadlinux-4c46764733c85b82c07e9559b39da4d00a7dd659.tar.xz
linux-4c46764733c85b82c07e9559b39da4d00a7dd659.zip
libnvdimm/label: Return -ENXIO for no slot in __blk_label_update
Forget to set error code when nd_label_alloc_slot failed, and we add it to avoid overwritten error code. Fixes: 0ba1c634892b ("libnvdimm: write blk label set") Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com> Link: https://lore.kernel.org/r/20201205115056.2076523-1-zhangqilong3@huawei.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/label.c')
-rw-r--r--drivers/nvdimm/label.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c
index 6f2be7a34598..9251441fd8a3 100644
--- a/drivers/nvdimm/label.c
+++ b/drivers/nvdimm/label.c
@@ -1008,8 +1008,10 @@ static int __blk_label_update(struct nd_region *nd_region,
if (is_old_resource(res, old_res_list, old_num_resources))
continue; /* carry-over */
slot = nd_label_alloc_slot(ndd);
- if (slot == UINT_MAX)
+ if (slot == UINT_MAX) {
+ rc = -ENXIO;
goto abort;
+ }
dev_dbg(ndd->dev, "allocated: %d\n", slot);
nd_label = to_label(ndd, slot);