You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.8 KiB
64 lines
2.8 KiB
--- |
|
multipath/11-dm-mpath.rules | 34 ++++++++++++++++++++++++++++++++++ |
|
multipath/Makefile | 2 ++ |
|
2 files changed, 36 insertions(+) |
|
|
|
Index: multipath-tools-130222/multipath/11-dm-mpath.rules |
|
=================================================================== |
|
--- /dev/null |
|
+++ multipath-tools-130222/multipath/11-dm-mpath.rules |
|
@@ -0,0 +1,34 @@ |
|
+ACTION!="add|change", GOTO="mpath_end" |
|
+ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="mpath_end" |
|
+ENV{DM_UUID}!="mpath-?*", GOTO="mpath_end" |
|
+ |
|
+# Do not initiate scanning if no path is available, |
|
+# otherwise there would be a hang or IO error on access. |
|
+# We'd like to avoid this, especially within udev processing. |
|
+ENV{DM_NR_VALID_PATHS}!="?*", IMPORT{db}="DM_NR_VALID_PATHS" |
|
+ENV{DM_NR_VALID_PATHS}=="0", ENV{DM_NOSCAN}="1" |
|
+ |
|
+# Also skip all foreign rules if no path is available. |
|
+# Remember the original value of DM_DISABLE_OTHER_RULES_FLAG |
|
+# and restore it back once we have at least one path available. |
|
+IMPORT{db}="DM_DISABLE_OTHER_RULES_FLAG_OLD" |
|
+ENV{DM_ACTION}=="PATH_FAILED",\ |
|
+ ENV{DM_NR_VALID_PATHS}=="0",\ |
|
+ ENV{DM_DISABLE_OTHER_RULES_FLAG_OLD}=="",\ |
|
+ ENV{DM_DISABLE_OTHER_RULES_FLAG_OLD}="$env{DM_UDEV_DISABLE_OTHER_RULES_FLAG}",\ |
|
+ ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}="1" |
|
+ENV{DM_ACTION}=="PATH_REINSTATED",\ |
|
+ ENV{DM_NR_VALID_PATHS}=="1",\ |
|
+ ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}="$env{DM_DISABLE_OTHER_RULES_FLAG_OLD}",\ |
|
+ ENV{DM_DISABLE_OTHER_RULES_FLAG_OLD}="",\ |
|
+ ENV{DM_ACTIVATION}="1" |
|
+ |
|
+# DM_SUBSYSTEM_UDEV_FLAG0 is the "RELOAD" flag for multipath subsystem. |
|
+# Drop the DM_ACTIVATION flag here as mpath reloads tables if any of its |
|
+# paths are lost/recovered. For any stack above the mpath device, this is not |
|
+# something that should be reacted upon since it would be useless extra work. |
|
+# It's exactly mpath's job to provide *seamless* device access to any of the |
|
+# paths that are available underneath. |
|
+ENV{DM_SUBSYSTEM_UDEV_FLAG0}=="1", ENV{DM_ACTIVATION}="0" |
|
+ |
|
+LABEL="mpath_end" |
|
Index: multipath-tools-130222/multipath/Makefile |
|
=================================================================== |
|
--- multipath-tools-130222.orig/multipath/Makefile |
|
+++ multipath-tools-130222/multipath/Makefile |
|
@@ -25,6 +25,7 @@ install: |
|
$(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/ |
|
$(INSTALL_PROGRAM) -d $(DESTDIR)/usr/lib/udev/rules.d |
|
$(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/usr/lib/udev/rules.d/62-multipath.rules |
|
+ $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)/usr/lib/udev/rules.d/11-dm-mpath.rules |
|
$(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir) |
|
$(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir) |
|
$(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir) |
|
@@ -33,6 +34,7 @@ install: |
|
|
|
uninstall: |
|
rm $(DESTDIR)/usr/lib/udev/rules.d/62-multipath.rules |
|
+ rm $(DESTDIR)/usr/lib/udev/rules.d/11-dm-mpath.rules |
|
rm $(DESTDIR)$(bindir)/$(EXEC) |
|
rm $(DESTDIR)$(bindir)/mpathconf |
|
rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
|
|
|