[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