From 2b2195bf68bf68837dc9f6b4765d3716694f42b3 Mon Sep 17 00:00:00 2001
From: Alexander Larsson <alexl@redhat.com>
Date: Thu, 26 Nov 2009 15:05:07 +0000
Subject: Pass in the right device to vfs->local_file_add_info for symlinks
We used to pass the path for the symlink, but the device of the target
which is wrong and breaks metadata access.
https://bugzilla.gnome.org/show_bug.cgi?id=593809
---
diff --git a/gio/glocalfileinfo.c b/gio/glocalfileinfo.c
index 0a063e9..0eb16db 100644
--- a/gio/glocalfileinfo.c
+++ b/gio/glocalfileinfo.c
@@ -1432,6 +1432,7 @@ _g_local_file_info_get (const char *basename,
char *symlink_target;
GVfs *vfs;
GVfsClass *class;
+ guint64 device;
info = g_file_info_new ();
@@ -1483,7 +1484,9 @@ _g_local_file_info_get (const char *basename,
g_free (display_name);
return NULL;
}
-
+
+ device = statbuf.st_dev;
+
#ifdef S_ISLNK
is_symlink = S_ISLNK (statbuf.st_mode);
#else
@@ -1711,7 +1714,7 @@ _g_local_file_info_get (const char *basename,
{
class->local_file_add_info (vfs,
path,
- statbuf.st_dev,
+ device,
attribute_matcher,
info,
NULL,
--
cgit v0.8.2