lkml.org 
[lkml]   [2020]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.7 56/58] nvme-multipath: fix logic for non-optimized paths
    Date
    From: Martin Wilck <mwilck@suse.com>

    [ Upstream commit 3f6e3246db0e6f92e784965d9d0edb8abe6c6b74 ]

    Handle the special case where we have exactly one optimized path,
    which we should keep using in this case.

    Fixes: 75c10e732724 ("nvme-multipath: round-robin I/O policy")
    Signed off-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/nvme/host/multipath.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
    index 36db7d2e6a896..2c94e084a61b8 100644
    --- a/drivers/nvme/host/multipath.c
    +++ b/drivers/nvme/host/multipath.c
    @@ -246,6 +246,12 @@ static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head,
    fallback = ns;
    }

    + /* No optimized path found, re-check the current path */
    + if (!nvme_path_is_disabled(old) &&
    + old->ana_state == NVME_ANA_OPTIMIZED) {
    + found = old;
    + goto out;
    + }
    if (!fallback)
    return NULL;
    found = fallback;
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-08-09 01:39    [W:6.709 / U:0.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site