Previously, fence_scsi would only identify /dev/dm* devices as being
multipath devices. This prevented the use of "friendly" dm-multipath
names (eg. /dev/mapper/mpath1). Since fence_scsi can now be passed
devices to operate on, it should be able to handle "friendly" names,
too. This patch fixes the problem by getting the absolute path of the
device at registration time.
+use Cwd 'realpath';
use File::Basename;
use Getopt::Std;
use POSIX;
@@ -112,6 +113,8 @@ sub do_register ($$$)
my $self = (caller(0))[3];
my ($host_key, $node_key, $dev) = @_;
+ $dev = realpath ($dev);
+
if (substr ($dev, 5) =~ /^dm/) {
my @slaves = get_mpath_slaves ($dev);
foreach (@slaves) {
@@ -139,6 +142,8 @@ sub do_register_ignore ($$)
my $self = (caller(0))[3];
my ($node_key, $dev) = @_;