diff -Nurp multipath-tools-0.4.7.orig/libmultipath/util.c multipath-tools-0.4.7/libmultipath/util.c --- multipath-tools-0.4.7.orig/libmultipath/util.c 2007-01-15 20:21:05.000000000 +0000 +++ multipath-tools-0.4.7/libmultipath/util.c 2007-01-15 20:22:07.000000000 +0000 @@ -53,6 +53,16 @@ filepresent (char * run) { } int +isblockdev (char * run) { + struct stat buf; + + if(stat(run, &buf)) + return 0; + + return S_ISBLK(buf.st_mode); +} + +int get_word (char * sentence, char ** word) { char * p; diff -Nurp multipath-tools-0.4.7.orig/multipath/main.c multipath-tools-0.4.7/multipath/main.c --- multipath-tools-0.4.7.orig/multipath/main.c 2007-01-15 20:21:05.000000000 +0000 +++ multipath-tools-0.4.7/multipath/main.c 2007-01-15 20:22:07.000000000 +0000 @@ -383,7 +383,7 @@ main (int argc, char *argv[]) strncpy(conf->dev, argv[optind], FILE_NAME_SIZE); - if (filepresent(conf->dev)) + if (filepresent(conf->dev) && isblockdev(conf->dev)) conf->dev_type = DEV_DEVNODE; else if (sscanf(conf->dev, "%d:%d", &i, &i) == 2) conf->dev_type = DEV_DEVT;