[PATCH v2 3/2 nvme-cli] fabrics: re-read the discovery log page when a discovery controller reconnected

Daniel Wagner dwagner at suse.de
Tue Sep 27 00:52:13 PDT 2022


On Thu, Sep 22, 2022 at 11:15:38AM +0300, Sagi Grimberg wrote:
> When using persistent discovery controllers, if the discovery controller
> loses connectivity and manage to reconnect after a while, we need to
> retrieve again the discovery log page in order to learn about possible
> changes that may have occurred during this time as discovery log change
> events were lost.
> 
> Upon reception of a udev EVENT=rediscover we can kickstart discovery on
> the existing discovery controller device node that generated the event.
> 
> Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
> ---
>  nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in b/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in
> index 434cc080ffe3..93e438863672 100644
> --- a/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in
> +++ b/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in
> @@ -17,3 +17,10 @@ ACTION=="change", SUBSYSTEM=="nvme", ENV{NVME_AEN}=="0x70f002",\
>  ACTION=="change", SUBSYSTEM=="fc", ENV{FC_EVENT}=="nvmediscovery", \
>    ENV{NVMEFC_HOST_TRADDR}=="*",  ENV{NVMEFC_TRADDR}=="*", \
>    RUN+="@SYSTEMCTL@ --no-block start nvmf-connect at --device=none\t--transport=fc\t--traddr=$env{NVMEFC_TRADDR}\t--trsvcid=none\t--host-traddr=$env{NVMEFC_HOST_TRADDR}.service"
> +
> +# A discovery controller just (re)connected, re-read the discovery log change to
> +# check if there were any changes since it was last connected.
> +ACTION=="change", SUBSYSTEM=="nvme", ENV{NVME_EVENT}=="rediscover", ATTR{cntrltype}=="discovery", \
> +  ENV{NVME_TRTYPE}=="*", ENV{NVME_TRADDR}=="*", \
> +  ENV{NVME_TRSVCID}=="*", ENV{NVME_HOST_TRADDR}=="*", \
> +  RUN+="@SYSTEMCTL@ --no-block start nvmf-connect at --device=$kernel\t--transport=$env{NVME_TRTYPE}\t--traddr=$env{NVME_TRADDR}\t--trsvcid=$env{NVME_TRSVCID}\t--host-traddr=$env{NVME_HOST_TRADDR}.service"

I was about to apply the change. Though I just added the change from
Martin where the --host_iface argument is added to the first nvme
rule.

https://github.com/linux-nvme/nvme-cli/pull/1675

I wonder to we need to it to append the --host_iface argument as well.

Daniel



More information about the Linux-nvme mailing list