[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