aboutsummaryrefslogtreecommitdiffstats
path: root/main/udisks/no-floppy.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/udisks/no-floppy.patch')
-rw-r--r--main/udisks/no-floppy.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/main/udisks/no-floppy.patch b/main/udisks/no-floppy.patch
new file mode 100644
index 0000000000..3d01dac7ac
--- /dev/null
+++ b/main/udisks/no-floppy.patch
@@ -0,0 +1,31 @@
+From ca93d4e2d9e7f483b2fde1725da086e2cca44164 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Wed, 02 Jun 2010 13:56:07 +0000
+Subject: Fix long hangs on probing nonexistant floppy drives
+
+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
+---
+diff --git a/src/device.c b/src/device.c
+index 763385c..0e87f1d 100644
+--- a/src/device.c
++++ b/src/device.c
+@@ -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);
+--
+cgit v0.8.3-6-g21f6
+