]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
fabrics: re-read the discovery log page when a discovery controller reconnected
authorSagi Grimberg <sagi@grimberg.me>
Thu, 22 Sep 2022 08:15:38 +0000 (11:15 +0300)
committerDaniel Wagner <dwagner@suse.de>
Tue, 27 Sep 2022 11:56:10 +0000 (13:56 +0200)
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@grimberg.me>
Reviewed-by: James Smart <jsmart2021@gmail.com>
[dwagner: added --host_iface argument]
Signed-off-by: Daniel Wagner <dwagner@suse.de
nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in

index e2f19f30d1ef2612052c6c4c45f4c2e3e6ef0ea1..e751ee09d3b5a6bc7b92be0772fa05bd93447a7c 100644 (file)
@@ -22,4 +22,11 @@ ACTION=="change", SUBSYSTEM=="fc", ENV{FC_EVENT}=="nvmediscovery", \
   ENV{NVMEFC_HOST_TRADDR}=="*",  ENV{NVMEFC_TRADDR}=="*", \
   RUN+="@SYSTEMCTL@ --no-block start nvmf-connect@--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}=="*", ENV{NVME_HOST_IFACE}=="*", \
+  RUN+="@SYSTEMCTL@ --no-block start nvmf-connect@--device=$kernel\t--transport=$env{NVME_TRTYPE}\t--traddr=$env{NVME_TRADDR}\t--trsvcid=$env{NVME_TRSVCID}\t--host-traddr=$env{NVME_HOST_TRADDR}\t--host-iface=$env{NVME_HOST_IFACE}.service"
+
 LABEL="autoconnect_end"