update_mpp_paths(mpp, vecs->pathvec);
if (refresh) {
- vector_foreach_slot (mpp->paths, pp, i)
- pathinfo(pp, conf->hwtable, DI_PRIO);
+ vector_foreach_slot (mpp->paths, pp, i) {
+ r = pathinfo(pp, conf->hwtable, DI_PRIO);
+ if (r) {
+ condlog(2, "%s: failed to refresh pathinfo",
+ mpp->alias);
+ return 1;
+ }
+ }
}
if (setup_map(mpp, params, PARAMS_SIZE)) {
condlog(0, "%s: failed to setup map", mpp->alias);
continue;
}
devtype = udev_device_get_devtype(udevice);
- if(devtype && !strncmp(devtype, "disk", 4))
- r += path_discover(pathvec, conf, udevice, flag);
+ if(devtype && !strncmp(devtype, "disk", 4)) {
+ r += path_discover(pathvec, conf,
+ udevice, flag);
+ }
udev_device_unref(udevice);
}
udev_enumerate_unref(udev_iter);
continue;
}
pp->mpp = mpp;
- pathinfo(pp, conf->hwtable, DI_ALL);
+ if (pathinfo(pp, conf->hwtable, DI_ALL))
+ pp->state = PATH_UNCHECKED;
continue;
}
pp->mpp = mpp;
if (pp->state == PATH_UNCHECKED ||
- pp->state == PATH_WILD)
- pathinfo(pp, conf->hwtable, DI_CHECKER);
+ pp->state == PATH_WILD) {
+ if (pathinfo(pp, conf->hwtable, DI_CHECKER))
+ pp->state = PATH_UNCHECKED;
+ }
- if (pp->priority == PRIO_UNDEF)
- pathinfo(pp, conf->hwtable, DI_PRIO);
+ if (pp->priority == PRIO_UNDEF) {
+ if (pathinfo(pp, conf->hwtable, DI_PRIO))
+ pp->priority = PRIO_UNDEF;
+ }
}
}
return 0;