diff --git a/extras/multipath/ChangeLog b/extras/multipath/ChangeLog index 9296b4db684..a780865d3ec 100644 --- a/extras/multipath/ChangeLog +++ b/extras/multipath/ChangeLog @@ -1,4 +1,5 @@ 2003-12-29 multipath-012 + * check hotplug event refers to a block device; if not exit early * refresh doc * add the uninstall target in Makefile 2003-12-22 multipath-010 diff --git a/extras/multipath/main.c b/extras/multipath/main.c index f62e0f99547..a8e29e8ba60 100644 --- a/extras/multipath/main.c +++ b/extras/multipath/main.c @@ -261,7 +261,11 @@ get_all_paths_sysfs(struct env * conf, struct path * all_paths) sprintf(buff, "%s%s/block", conf->sysfs_path, conf->hotplugdev); memset(conf->hotplugdev, 0, FILE_NAME_SIZE); - readlink(buff, conf->hotplugdev, FILE_NAME_SIZE); + + /* if called from hotplug but with no block, leave */ + if (0 > readlink(buff, conf->hotplugdev, FILE_NAME_SIZE)) + return 0; + basename(conf->hotplugdev, buff); sprintf(curpath.sg_dev, "/dev/%s", buff); diff --git a/extras/multipath/multipath.hotplug b/extras/multipath/multipath.hotplug index 8d60f4d2c6e..9bab619826a 100644 --- a/extras/multipath/multipath.hotplug +++ b/extras/multipath/multipath.hotplug @@ -1,3 +1,6 @@ . /etc/hotplug/hotplug.functions + +# wait for sysfs sleep 1 + mesg `/sbin/multipath scsi $DEVPATH`