Fix long hangs on probing nonexistant floppy drives
authorMartin Pitt <martin.pitt@ubuntu.com>
Wed, 2 Jun 2010 13:56:07 +0000 (15:56 +0200)
committerMartin Pitt <martin.pitt@ubuntu.com>
Wed, 2 Jun 2010 13:59:47 +0000 (15:59 +0200)
A lot of modern machines do not have a floppy drive any more, but still have a
floppy controller somewhere (or at least the BIOS pretends to). Trying to
open(/dev/fd0) on these machines causes long hangs, which lead to long desktop
startup times.

To fix this, avoid probing floppies for media in update_info().

https://launchpad.net/bugs/539515

src/device.c

index 763385c..0e87f1d 100644 (file)
@@ -4471,7 +4471,8 @@ update_info (Device *device)
     {
       media_available = FALSE;
 
-      if (!g_udev_device_get_property_as_boolean (device->priv->d, "ID_CDROM"))
+      if (!g_udev_device_get_property_as_boolean (device->priv->d, "ID_CDROM") &&
+          !g_udev_device_get_property_as_boolean (device->priv->d, "ID_DRIVE_FLOPPY"))
         {
           int fd;
           fd = open (device->priv->device_file, O_RDONLY);