[PATCH libnvme v2] fabrics: fix endless loop in connect-all for NVME_NQN_CURR
Hannes Reinecke
hare at suse.de
Mon Nov 29 05:09:33 PST 2021
On 11/28/21 2:03 PM, Sagi Grimberg wrote:
> For a discovery log page entry that indicates the discovery controller
> that returned it (i.e. itself), we need to set the controller as
> discovered (because we got the discovery log page by connecting to it).
>
> Without this connect-all goes in an endless loop keep connecting and
> retrieving the log page from the same discovery subsystem port.
>
> Fixes: 06a8f001d314 ("tree,fabrics: detect discovery loops")
> Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
> ---
> Changes from v1:
> - add break as we don't need the discovery ctrl setting
>
> src/nvme/fabrics.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/nvme/fabrics.c b/src/nvme/fabrics.c
> index 686a5641aa9c..9207296ba957 100644
> --- a/src/nvme/fabrics.c
> +++ b/src/nvme/fabrics.c
> @@ -657,8 +657,10 @@ nvme_ctrl_t nvmf_connect_disc_entry(nvme_host_t h,
> }
>
> switch (e->subtype) {
> - case NVME_NQN_DISC:
> case NVME_NQN_CURR:
> + nvme_ctrl_set_discovered(c, true);
> + break;
> + case NVME_NQN_DISC:
> if (discover)
> *discover = true;
> nvme_ctrl_set_discovery_ctrl(c, true);
>
Merged with https://github.com/linux-nvme/libnvme
Cheers,
Hannes
More information about the Linux-nvme
mailing list