We need both, 'pp->dev' and 'pp->dev_t' for correct lookup to work. So ensure dev_t is always being updated when storing a new path. Signed-off-by: Hannes Reinecke <hare@xxxxxxxx> --- libmultipath/discovery.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c index 2cf2566..db82b00 100644 --- a/libmultipath/discovery.c +++ b/libmultipath/discovery.c @@ -1599,6 +1599,16 @@ pathinfo (struct path *pp, vector hwtable, int mask) condlog(3, "%s: mask = 0x%x", pp->dev, mask); /* + * Sanity check: we need the device number to + * avoid inconsistent information in + * find_path_by_dev()/find_path_by_devt() + */ + if (!strlen(pp->dev_t) && !(mask & DI_SYSFS)) { + condlog(1, "%s: empty device number", pp->dev); + mask |= DI_SYSFS; + } + + /* * fetch info available in sysfs */ if (mask & DI_SYSFS && sysfs_pathinfo(pp)) -- 2.6.6 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel