@@ -32,7 +32,7 @@
#include "defaults.h"
int
-alloc_path_with_pathinfo (struct config *conf, struct udev_device *udevice,
+alloc_path_with_pathinfo (struct config *conf, struct uevent *uev,
int flag, struct path **pp_ptr)
{
int err = PATHINFO_FAILED;
@@ -42,7 +42,7 @@ alloc_path_with_pathinfo (struct config *conf, struct udev_device *udevice,
if (pp_ptr)
*pp_ptr = NULL;
- devname = udev_device_get_sysname(udevice);
+ devname = udev_device_get_sysname(uev->udev);
if (!devname)
return PATHINFO_FAILED;
@@ -51,10 +51,13 @@ alloc_path_with_pathinfo (struct config *conf, struct udev_device *udevice,
if (!pp)
return PATHINFO_FAILED;
+ if(uev->wwid)
+ strncpy(pp->wwid, uev->wwid, sizeof(pp->wwid));
+
if (safe_sprintf(pp->dev, "%s", devname)) {
condlog(0, "pp->dev too small");
} else {
- pp->udev = udev_device_ref(udevice);
+ pp->udev = udev_device_ref(uev->udev);
err = pathinfo(pp, conf, flag | DI_BLACKLIST);
}
@@ -1,6 +1,8 @@
#ifndef DISCOVERY_H
#define DISCOVERY_H
+#include "uevent.h"
+
#define SYSFS_PATH_SIZE 255
#define INQUIRY_CMDLEN 6
#define INQUIRY_CMD 0x12
@@ -36,7 +38,7 @@ int do_tur (char *);
int path_offline (struct path *);
int get_state (struct path * pp, struct config * conf, int daemon);
int pathinfo (struct path * pp, struct config * conf, int mask);
-int alloc_path_with_pathinfo (struct config *conf, struct udev_device *udevice,
+int alloc_path_with_pathinfo (struct config *conf, struct uevent *uev,
int flag, struct path **pp_ptr);
int store_pathinfo (vector pathvec, struct config *conf,
struct udev_device *udevice, int flag,
@@ -664,7 +664,7 @@ uev_add_path (struct uevent *uev, struct vectors * vecs, int need_do_map)
* get path vital state
*/
conf = get_multipath_config();
- ret = alloc_path_with_pathinfo(conf, uev->udev,
+ ret = alloc_path_with_pathinfo(conf, uev,
DI_ALL, &pp);
put_multipath_config(conf);
if (!pp) {
@@ -1026,7 +1026,7 @@ out:
int flag = DI_SYSFS | DI_WWID;
conf = get_multipath_config();
- retval = alloc_path_with_pathinfo(conf, uev->udev, flag, NULL);
+ retval = alloc_path_with_pathinfo(conf, uev, flag, NULL);
put_multipath_config(conf);
if (retval == PATHINFO_SKIPPED) {