Commit b8b8cd01 authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

nvme: lift the check for an unallocated namespace into nvme_identify_ns



Move the check from the two callers into the common helper.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarKeith Busch <kbusch@kernel.org>
Reviewed-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
parent 81382f17
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -1381,9 +1381,16 @@ static int nvme_identify_ns(struct nvme_ctrl *ctrl,
	error = nvme_submit_sync_cmd(ctrl->admin_q, &c, *id, sizeof(**id));
	if (error) {
		dev_warn(ctrl->device, "Identify namespace failed (%d)\n", error);
		kfree(*id);
		goto out_free_id;
	}

	error = -ENODEV;
	if ((*id)->ncap == 0) /* namespace not allocated or attached */
		goto out_free_id;
	return 0;

out_free_id:
	kfree(*id);
	return error;
}

@@ -2169,11 +2176,6 @@ static int nvme_validate_ns(struct nvme_ns *ns)
	if (ret)
		goto out;

	if (id->ncap == 0) {
		ret = -ENODEV;
		goto free_id;
	}

	ret = nvme_report_ns_ids(ctrl, ns->head->ns_id, id, &ids);
	if (ret)
		goto free_id;
@@ -3913,9 +3915,6 @@ static void nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid)
	if (ret)
		goto out_free_queue;

	if (id->ncap == 0)	/* no namespace (legacy quirk) */
		goto out_free_id;

	ret = nvme_init_ns_head(ns, nsid, id);
	if (ret)
		goto out_free_id;