From b5be218d63a4346e54aaed18eb7b5f6d5c2be108 Mon Sep 17 00:00:00 2001 From: Zhang Qilong Date: Thu, 7 Jan 2021 07:44:23 +0000 Subject: [PATCH] libnvdimm/label: Return -ENXIO for no slot in __blk_label_update stable inclusion from stable-5.10.4 commit 0572a4aa7415b86708e25676200db8f4d332cf6b bugzilla: 46903 -------------------------------- [ Upstream commit 4c46764733c85b82c07e9559b39da4d00a7dd659 ] 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 Link: https://lore.kernel.org/r/20201205115056.2076523-1-zhangqilong3@huawei.com Signed-off-by: Dan Williams Signed-off-by: Sasha Levin Signed-off-by: Chen Jun Acked-by: Xie XiuQi --- drivers/nvdimm/label.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c index 47a4828b8b31..05c1f186a6be 100644 --- a/drivers/nvdimm/label.c +++ b/drivers/nvdimm/label.c @@ -999,8 +999,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); -- GitLab