gvfs/gdu-0009-never-ignore-drive...

74 lines
1.9 KiB
Diff

From c54217a58f71f3ca7a85ce81fb96f363255c6110 Mon Sep 17 00:00:00 2001
From: David Zeuthen <davidz@redhat.com>
Date: Sat, 11 Apr 2009 12:57:55 -0400
Subject: [PATCH] never ignore drives without media
---
monitor/gdu/ggduvolumemonitor.c | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/monitor/gdu/ggduvolumemonitor.c b/monitor/gdu/ggduvolumemonitor.c
index 0e7ce6f..caa25a0 100644
--- a/monitor/gdu/ggduvolumemonitor.c
+++ b/monitor/gdu/ggduvolumemonitor.c
@@ -751,13 +751,13 @@ static gboolean
should_drive_be_ignored (GduPool *pool, GduDrive *d, GList *fstab_mount_points)
{
GduDevice *device;
- gboolean ret;
+ gboolean ignored;
gboolean has_volumes;
gboolean all_volumes_are_ignored;
GList *enclosed;
GList *l;
- ret = FALSE;
+ ignored = FALSE;
device = NULL;
enclosed = NULL;
@@ -771,7 +771,7 @@ should_drive_be_ignored (GduPool *pool, GduDrive *d, GList *fstab_mount_points)
*/
if (device == NULL)
{
- ret = TRUE;
+ ignored = TRUE;
goto out;
}
@@ -801,11 +801,20 @@ should_drive_be_ignored (GduPool *pool, GduDrive *d, GList *fstab_mount_points)
/* we ignore a drive if
*
- * a) it doesn't have any volumes; or
+ * a) no volumes are available AND media is available; OR
*
* b) the volumes of the drive are all ignored
*/
- ret = (!has_volumes) || (has_volumes && all_volumes_are_ignored);
+ if (!has_volumes)
+ {
+ if (gdu_device_is_media_available (device))
+ ignored = TRUE;
+ }
+ else
+ {
+ if (all_volumes_are_ignored)
+ ignored = TRUE;
+ }
out:
g_list_foreach (enclosed, (GFunc) g_object_unref, NULL);
@@ -814,7 +823,7 @@ should_drive_be_ignored (GduPool *pool, GduDrive *d, GList *fstab_mount_points)
if (device != NULL)
g_object_unref (device);
- return ret;
+ return ignored;
}
static void
--
1.6.2.2