lkml.org 
[lkml]   [2022]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 049/201] nvme: check for duplicate identifiers earlier
    Date
    From: Christoph Hellwig <hch@lst.de>

    [ Upstream commit e2d77d2e11c4f1e70a1a24cc8fe63ff3dc9b53ef ]

    Lift the check for duplicate identifiers into nvme_init_ns_head, which
    avoids pointless error unwinding in case they don't match, and also
    matches where we check identifier validity for the multipath case.

    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Keith Busch <kbusch@kernel.org>
    Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/nvme/host/core.c | 13 ++++++-------
    1 file changed, 6 insertions(+), 7 deletions(-)

    diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
    index 29b56ea01132..8fca84d44446 100644
    --- a/drivers/nvme/host/core.c
    +++ b/drivers/nvme/host/core.c
    @@ -3686,13 +3686,6 @@ static struct nvme_ns_head *nvme_alloc_ns_head(struct nvme_ctrl *ctrl,
    head->ids = *ids;
    kref_init(&head->ref);

    - ret = nvme_subsys_check_duplicate_ids(ctrl->subsys, &head->ids);
    - if (ret) {
    - dev_err(ctrl->device,
    - "duplicate IDs for nsid %d\n", nsid);
    - goto out_cleanup_srcu;
    - }
    -
    if (head->ids.csi) {
    ret = nvme_get_effects_log(ctrl, head->ids.csi, &head->effects);
    if (ret)
    @@ -3731,6 +3724,12 @@ static int nvme_init_ns_head(struct nvme_ns *ns, unsigned nsid,
    mutex_lock(&ctrl->subsys->lock);
    head = nvme_find_ns_head(ctrl, nsid);
    if (!head) {
    + ret = nvme_subsys_check_duplicate_ids(ctrl->subsys, ids);
    + if (ret) {
    + dev_err(ctrl->device,
    + "duplicate IDs for nsid %d\n", nsid);
    + goto out_unlock;
    + }
    head = nvme_alloc_ns_head(ctrl, nsid, ids);
    if (IS_ERR(head)) {
    ret = PTR_ERR(head);
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-07-27 19:06    [W:4.145 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site