diff --git a/multipath/Makefile b/multipath/Makefile index e0031a2..fe377d8 100644 --- a/multipath/Makefile +++ b/multipath/Makefile @@ -20,7 +20,7 @@ $(EXEC): $(OBJS) install: $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/ + $(INSTALL_PROGRAM) -m 755 $(EXEC) mpath_wait $(DESTDIR)$(bindir)/ $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/etc/udev/rules.d/ $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir) @@ -31,6 +31,7 @@ install: uninstall: rm $(DESTDIR)/etc/udev/rules.d/multipath.rules rm $(DESTDIR)$(bindir)/$(EXEC) + rm $(DESTDIR)$(bindir)/mpath_wait rm $(DESTDIR)$(mandir)/$(EXEC).8.gz rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz diff --git a/multipath/mpath_wait b/multipath/mpath_wait new file mode 100644 index 0000000..d4047cc --- /dev/null +++ b/multipath/mpath_wait @@ -0,0 +1,17 @@ +#!/bin/bash + +retry=3 +sec=1 + +/sbin/dmsetup info -c --noheadings -j $1 -m $2 2> /dev/null | grep -q .*:${1}:${2}:L.*:.*:.*:.*:.* +ret=$? + +while [ "$ret" -ne 0 -a "$retry" -gt 0 ] +do + sleep $sec + /sbin/dmsetup info -c --noheadings -j $1 -m $2 2> /dev/null | grep -q .*:${1}:${2}:L.*:.*:.*:.*:.* + ret=$? + retry=$(($retry - 1)) +done + +exit $ret