[PATCH 1/3] nvme: cleanup __nvme_check_ids
Keith Busch
kbusch at kernel.org
Thu Feb 24 07:29:32 PST 2022
On Thu, Feb 24, 2022 at 11:58:50AM +0100, Christoph Hellwig wrote:
> Pass the actual nvme_ns_ids used for the comparism instead of the
> ns_head that isn't needed and use a more descriptive function name.
>
> Signed-off-by: Christoph Hellwig <hch at lst.de>
> ---
> drivers/nvme/host/core.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 9cffc4770e737..076a03b801b7e 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -3673,16 +3673,15 @@ static struct nvme_ns_head *nvme_find_ns_head(struct nvme_subsystem *subsys,
> return NULL;
> }
>
> -static int __nvme_check_ids(struct nvme_subsystem *subsys,
> - struct nvme_ns_head *new)
> +static int nvme_subsys_check_duplicate_ids(struct nvme_subsystem *subsys,
> + struct nvme_ns_ids *ids)
> {
> struct nvme_ns_head *h;
>
> lockdep_assert_held(&subsys->lock);
>
> list_for_each_entry(h, &subsys->nsheads, entry) {
> - if (nvme_ns_ids_valid(&new->ids) &&
> - nvme_ns_ids_equal(&new->ids, &h->ids))
> + if (nvme_ns_ids_valid(ids) && nvme_ns_ids_equal(ids, &h->ids))
> return -EINVAL;
> }
>
> @@ -3781,7 +3780,7 @@ static struct nvme_ns_head *nvme_alloc_ns_head(struct nvme_ctrl *ctrl,
> head->ids = *ids;
> kref_init(&head->ref);
>
> - ret = __nvme_check_ids(ctrl->subsys, head);
> + ret = nvme_subsys_check_duplicate_ids(ctrl->subsys, &head->ids);
Looks good.
As an afterthought, now that we don't need the "head", a further cleanup
can move this check further up in this function prior allocating the
head. That simplifies the error handling since there's nothing to
unwind.
More information about the Linux-nvme
mailing list