There is no need to try matching device names; using ioctls is more
effective.  So, always return a low priority from the generic
hdev_probe_device and let the ioctl tests override it.

Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
---
 block/raw-posix.c |   12 +++---------
 1 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/block/raw-posix.c b/block/raw-posix.c
index 2ee5d69..2a5b6fa 100644
--- a/block/raw-posix.c
+++ b/block/raw-posix.c
@@ -712,13 +712,9 @@ static int hdev_probe_device(const char *filename)
 {
     struct stat st;
 
-    /* allow a dedicated CD-ROM driver to match with a higher priority */
-    if (strstart(filename, "/dev/cdrom", NULL))
-        return 50;
-
     if (stat(filename, &st) >= 0 &&
             (S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode))) {
-        return 100;
+        return 50;
     }
 
     return 0;
@@ -947,9 +943,6 @@ static int floppy_probe_device(const char *filename)
     struct floppy_struct fdparam;
     struct stat st;
 
-    if (strstart(filename, "/dev/fd", NULL))
-        prio = 50;
-
     fd = open(filename, O_RDONLY | O_NONBLOCK);
     if (fd < 0) {
         goto out;
@@ -959,7 +952,8 @@ static int floppy_probe_device(const char *filename)
         goto outc;
     }
 
-    /* Attempt to detect via a floppy specific ioctl */
+    /* Attempt to detect via a floppy specific ioctl.  If it fails,
+     * hdev will be just as good.  */
     ret = ioctl(fd, FDGETPRM, &fdparam);
     if (ret >= 0)
         prio = 100;
-- 
1.7.7.6



Reply via email to