Blob Blame History Raw
diff -up gvfs-1.1.7/daemon/gvfsbackendcomputer.c.orig gvfs-1.1.7/daemon/gvfsbackendcomputer.c
--- gvfs-1.1.7/daemon/gvfsbackendcomputer.c.orig	2009-02-10 13:56:11.000000000 +0100
+++ gvfs-1.1.7/daemon/gvfsbackendcomputer.c	2009-03-09 16:07:22.000000000 +0100
@@ -595,11 +595,16 @@ try_open_for_read (GVfsBackend *backend,
   return TRUE;
 }
 
+/*  TODO: push upstream  */
+#define G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE   "mountable::unix-device-file"
+
+
 static void
 file_info_from_file (ComputerFile *file,
                      GFileInfo *info)
 {
   char *uri;
+  char *device_file = NULL;
   
   g_file_info_set_name (info, file->filename);
   g_file_info_set_display_name (info, file->display_name);
@@ -627,6 +632,18 @@ file_info_from_file (ComputerFile *file,
   g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, FALSE);
   g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE, FALSE);
   g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH, FALSE);
+
+  if (file->volume)
+    /*  Take volume as a precedence  */
+    device_file = g_volume_get_identifier (file->volume, "unix-device");
+  else
+  if (file->drive)
+    device_file = g_drive_get_identifier (file->drive, "unix-device");
+  if (device_file)
+    {
+      g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE, device_file);
+      g_free (device_file);
+    }
 }
 
 static gboolean