diff options
Diffstat (limited to 'meta-gnome')
11 files changed, 110 insertions, 3358 deletions
diff --git a/meta-gnome/recipes-gnome/gvfs/files/0001-Add-support-for-libsystemd.patch b/meta-gnome/recipes-gnome/gvfs/files/0001-Add-support-for-libsystemd.patch new file mode 100644 index 0000000000..7ec9505582 --- /dev/null +++ b/meta-gnome/recipes-gnome/gvfs/files/0001-Add-support-for-libsystemd.patch @@ -0,0 +1,49 @@ +From 39be8b277c666db21965d54d5b72418ce57a450b Mon Sep 17 00:00:00 2001 +From: Michael Biebl <biebl@debian.org> +Date: Tue, 19 May 2015 23:38:11 +0200 +Subject: [PATCH] Add support for libsystemd + +In systemd v209 the various libsystemd-* libraries were merged into a +single libsystemd library. So first check for this library and fall back +to libsystemd-login if not found. + +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=749603 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779766 + +Upstream-Status: Applied +--- + configure.ac | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index ee3475d..bd5c043 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -264,18 +264,20 @@ dnl ********************************** + dnl *** Check for libsystemd-login *** + dnl ********************************** + +-AC_ARG_ENABLE(libsystemd_login, AS_HELP_STRING([--disable-libsystemd-login],[build without liblibsystemd-login])) ++AC_ARG_ENABLE(libsystemd_login, AS_HELP_STRING([--disable-libsystemd-login],[build without libsystemd-login])) + msg_libsystemd_login=no + LIBSYSTEMD_LOGIN_LIBS= + LIBSYSTEMD_LOGIN_CFLAGS= + LIBSYSTEMD_LOGIN_REQUIRED=44 + + if test "x$enable_libsystemd_login" != "xno"; then +- PKG_CHECK_EXISTS([libsystemd-login >= $LIBSYSTEMD_LOGIN_REQUIRED], msg_libsystemd_login=yes) ++ PKG_CHECK_EXISTS([libsystemd], [msg_libsystemd_login=yes], ++ [PKG_CHECK_EXISTS([libsystemd-login >= $LIBSYSTEMD_LOGIN_REQUIRED], msg_libsystemd_login=yes)]) + + if test "x$msg_libsystemd_login" = "xyes"; then +- PKG_CHECK_MODULES([LIBSYSTEMD_LOGIN],[libsystemd-login >= $LIBSYSTEMD_LOGIN_REQUIRED]) +- AC_DEFINE(HAVE_LIBSYSTEMD_LOGIN, 1, [Define to 1 if liblibsystemd_login is available]) ++ PKG_CHECK_MODULES([LIBSYSTEMD_LOGIN],[libsystemd],, ++ [PKG_CHECK_MODULES([LIBSYSTEMD_LOGIN],[libsystemd-login >= $LIBSYSTEMD_LOGIN_REQUIRED])]) ++ AC_DEFINE(HAVE_LIBSYSTEMD_LOGIN, 1, [Define to 1 if libsystemd_login is available]) + fi + fi + +-- +2.5.0 + diff --git a/meta-gnome/recipes-gnome/gvfs/files/0001-Revert-Respect-UDISKS_AUTOMOUNT_HINT-available-in-re.patch b/meta-gnome/recipes-gnome/gvfs/files/0001-Revert-Respect-UDISKS_AUTOMOUNT_HINT-available-in-re.patch deleted file mode 100644 index a5c6556711..0000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0001-Revert-Respect-UDISKS_AUTOMOUNT_HINT-available-in-re.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 1b9ceef87405296adccdadc9528d4cbb2bc51b76 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> -Date: Thu, 2 May 2013 13:27:16 +0200 -Subject: [PATCH] Revert "Respect UDISKS_AUTOMOUNT_HINT available in recent - udisks and gnome-disk-utility" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit 493ee806eba214a748d064b43c10882d76ee1492. - -AFAICS was the requirement for gnome-disk-utility V3 for a minor functionality change. - -Upstream-Status: Inappropriate [related to missing gnome3 support] - -Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> ---- - configure.ac | 2 +- - monitor/gdu/ggduvolume.c | 9 --------- - 2 files changed, 1 insertions(+), 10 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 601e994..377770e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -205,7 +205,7 @@ AC_ARG_ENABLE(gdu, AS_HELP_STRING([--disable-gdu],[build without GDU volume moni - msg_gdu=no - GDU_LIBS= - GDU_CFLAGS= --GDU_REQUIRED=3.0.2 -+GDU_REQUIRED=2.29.0 - - if test "x$enable_gdu" != "xno"; then - PKG_CHECK_EXISTS([gdu >= $GDU_REQUIRED], msg_gdu=yes) -diff --git a/monitor/gdu/ggduvolume.c b/monitor/gdu/ggduvolume.c -index eb15d22..0665b7a 100644 ---- a/monitor/gdu/ggduvolume.c -+++ b/monitor/gdu/ggduvolume.c -@@ -429,15 +429,6 @@ update_volume (GGduVolume *volume) - g_free (activation_uri); - } - -- /* if there's an automount hint, use it */ -- if (device != NULL) -- { -- if (g_strcmp0 (gdu_device_get_automount_hint (device), "always") == 0) -- volume->should_automount = TRUE; -- else if (g_strcmp0 (gdu_device_get_automount_hint (device), "never") == 0) -- volume->should_automount = FALSE; -- } -- - if (pool != NULL) - g_object_unref (pool); - if (device != NULL) --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gvfs/files/0002-Adapt-to-GLib-2.31-deprecations-and-thread-API-chang.patch b/meta-gnome/recipes-gnome/gvfs/files/0002-Adapt-to-GLib-2.31-deprecations-and-thread-API-chang.patch deleted file mode 100644 index 0aa9271150..0000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0002-Adapt-to-GLib-2.31-deprecations-and-thread-API-chang.patch +++ /dev/null @@ -1,599 +0,0 @@ -From bd014bd8a442cae12aace7deb6e6a4d21ac3dd0e Mon Sep 17 00:00:00 2001 -From: Matthias Clasen <mclasen@redhat.com> -Date: Fri, 21 Oct 2011 14:15:09 +0200 -Subject: [PATCH] Adapt to GLib 2.31 deprecations and thread API changes - -GStaticMutex and GStaticRWLock have been replaced by GMutex -and GRWLock, and g_thread_init() is no longer needed. - -https://bugzilla.gnome.org/show_bug.cgi?id=661148 - -Upstream-Status: Backport - -Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> ---- - client/gdaemonvfs.c | 5 +- - client/gvfsdaemondbus.c | 15 ++++--- - client/gvfsfusedaemon.c | 1 - - common/gmounttracker.c | 43 ++++++------------ - configure.ac | 2 +- - daemon/daemon-main.c | 1 - - daemon/gvfsdaemonutils.c | 8 ++-- - daemon/main.c | 2 - - metadata/metatree.c | 60 +++++++++++++------------- - monitor/proxy/gvfsproxyvolumemonitordaemon.c | 1 - - 10 files changed, 60 insertions(+), 78 deletions(-) - -diff --git a/client/gdaemonvfs.c b/client/gdaemonvfs.c -index 0f021b9..ae17c3c 100644 ---- a/client/gdaemonvfs.c -+++ b/client/gdaemonvfs.c -@@ -298,9 +298,8 @@ g_daemon_vfs_init (GDaemonVfs *vfs) - - bindtextdomain (GETTEXT_PACKAGE, GVFS_LOCALEDIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); -- -- if (g_thread_supported ()) -- dbus_threads_init_default (); -+ -+ dbus_threads_init_default (); - - vfs->async_bus = dbus_bus_get_private (DBUS_BUS_SESSION, NULL); - -diff --git a/client/gvfsdaemondbus.c b/client/gvfsdaemondbus.c -index f32a6f8..2cfd2e6 100644 ---- a/client/gvfsdaemondbus.c -+++ b/client/gvfsdaemondbus.c -@@ -53,7 +53,10 @@ typedef struct { - static gint32 vfs_data_slot = -1; - static GOnce once_init_dbus = G_ONCE_INIT; - --static GStaticPrivate local_connections = G_STATIC_PRIVATE_INIT; -+typedef struct _ThreadLocalConnections ThreadLocalConnections; -+static void free_local_connections (ThreadLocalConnections *local); -+ -+static GPrivate local_connections = G_PRIVATE_INIT((GDestroyNotify)free_local_connections); - - /* dbus id -> async connection */ - static GHashTable *async_map = NULL; -@@ -862,10 +865,10 @@ _g_vfs_daemon_call_sync (DBusMessage *message, - * get per-thread synchronous dbus connections * - *************************************************************************/ - --typedef struct { -+struct _ThreadLocalConnections { - GHashTable *connections; - DBusConnection *session_bus; --} ThreadLocalConnections; -+}; - - static void - free_mount_connection (DBusConnection *conn) -@@ -891,7 +894,7 @@ invalidate_local_connection (const char *dbus_id, - - _g_daemon_vfs_invalidate_dbus_id (dbus_id); - -- local = g_static_private_get (&local_connections); -+ local = g_private_get (&local_connections); - if (local) - g_hash_table_remove (local->connections, dbus_id); - -@@ -916,13 +919,13 @@ _g_dbus_connection_get_sync (const char *dbus_id, - - g_once (&once_init_dbus, vfs_dbus_init, NULL); - -- local = g_static_private_get (&local_connections); -+ local = g_private_get (&local_connections); - if (local == NULL) - { - local = g_new0 (ThreadLocalConnections, 1); - local->connections = g_hash_table_new_full (g_str_hash, g_str_equal, - g_free, (GDestroyNotify)free_mount_connection); -- g_static_private_set (&local_connections, local, (GDestroyNotify)free_local_connections); -+ g_private_set (&local_connections, local); - } - - if (dbus_id == NULL) -diff --git a/client/gvfsfusedaemon.c b/client/gvfsfusedaemon.c -index a4ba32c..7cfa81c 100644 ---- a/client/gvfsfusedaemon.c -+++ b/client/gvfsfusedaemon.c -@@ -2425,7 +2425,6 @@ gint - main (gint argc, gchar *argv []) - { - g_type_init (); -- g_thread_init (NULL); - - return fuse_main (argc, argv, &vfs_oper, NULL /* user data */); - } -diff --git a/common/gmounttracker.c b/common/gmounttracker.c -index 519cd47..135a2b2 100644 ---- a/common/gmounttracker.c -+++ b/common/gmounttracker.c -@@ -49,7 +49,7 @@ struct _GMountTracker - { - GObject parent_instance; - -- GMutex *lock; -+ GMutex lock; - GList *mounts; - DBusConnection *connection; - }; -@@ -258,8 +258,7 @@ g_mount_tracker_finalize (GObject *object) - - tracker = G_MOUNT_TRACKER (object); - -- if (tracker->lock) -- g_mutex_free (tracker->lock); -+ g_mutex_clear (&tracker->lock); - - g_list_foreach (tracker->mounts, - (GFunc)g_mount_info_unref, NULL); -@@ -382,21 +381,18 @@ static void - g_mount_tracker_add_mount (GMountTracker *tracker, - GMountInfo *info) - { -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - /* Don't add multiple times */ - if (g_mount_tracker_find (tracker, info)) - { -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - return; - } - - tracker->mounts = g_list_prepend (tracker->mounts, g_mount_info_ref (info)); - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - g_signal_emit (tracker, signals[MOUNTED], 0, info); - } -@@ -408,16 +404,14 @@ g_mount_tracker_remove_mount (GMountTracker *tracker, - GList *l; - GMountInfo *old_info; - -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - l = g_mount_tracker_find (tracker, info); - - /* Don't remove multiple times */ - if (l == NULL) - { -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - return; - } - -@@ -425,8 +419,7 @@ g_mount_tracker_remove_mount (GMountTracker *tracker, - - tracker->mounts = g_list_delete_link (tracker->mounts, l); - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - g_signal_emit (tracker, signals[UNMOUNTED], 0, old_info); - g_mount_info_unref (old_info); -@@ -548,8 +541,6 @@ init_connection (GMountTracker *tracker) - static void - g_mount_tracker_init (GMountTracker *tracker) - { -- if (g_thread_supported ()) -- tracker->lock = g_mutex_new (); - } - - -@@ -588,8 +579,7 @@ g_mount_tracker_list_mounts (GMountTracker *tracker) - GList *res, *l; - GMountInfo *copy; - -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - res = NULL; - for (l = tracker->mounts; l != NULL; l = l->next) -@@ -598,8 +588,7 @@ g_mount_tracker_list_mounts (GMountTracker *tracker) - res = g_list_prepend (res, copy); - } - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - return g_list_reverse (res); - } -@@ -611,8 +600,7 @@ g_mount_tracker_find_by_mount_spec (GMountTracker *tracker, - GList *l; - GMountInfo *info, *found; - -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - found = NULL; - for (l = tracker->mounts; l != NULL; l = l->next) -@@ -626,8 +614,7 @@ g_mount_tracker_find_by_mount_spec (GMountTracker *tracker, - } - } - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - return found; - } -@@ -641,8 +628,7 @@ g_mount_tracker_has_mount_spec (GMountTracker *tracker, - GMountInfo *info; - gboolean found; - -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - found = FALSE; - for (l = tracker->mounts; l != NULL; l = l->next) -@@ -656,8 +642,7 @@ g_mount_tracker_has_mount_spec (GMountTracker *tracker, - } - } - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - return found; - } -diff --git a/configure.ac b/configure.ac -index ee2f90f..be0c6a1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -46,7 +46,7 @@ GTK_DOC_CHECK - DISTCHECK_CONFIGURE_FLAGS="--enable-gtk-doc" - AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) - --PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.29.14 gthread-2.0 gobject-2.0 gmodule-no-export-2.0 gio-unix-2.0 gio-2.0 ) -+PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.31.0 gobject-2.0 gmodule-no-export-2.0 gio-unix-2.0 gio-2.0 ) - - PKG_CHECK_MODULES(DBUS, dbus-1) - -diff --git a/daemon/daemon-main.c b/daemon/daemon-main.c -index ef9025c..ff2bfde 100644 ---- a/daemon/daemon-main.c -+++ b/daemon/daemon-main.c -@@ -63,7 +63,6 @@ daemon_init (void) - textdomain (GETTEXT_PACKAGE); - - dbus_threads_init_default (); -- g_thread_init (NULL); - g_type_init (); - - g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG, log_debug, NULL); -diff --git a/daemon/gvfsdaemonutils.c b/daemon/gvfsdaemonutils.c -index f03d4b2..1efcf87 100644 ---- a/daemon/gvfsdaemonutils.c -+++ b/daemon/gvfsdaemonutils.c -@@ -41,7 +41,7 @@ - #include "gvfsdaemonprotocol.h" - - static gint32 extra_fd_slot = -1; --static GStaticMutex extra_lock = G_STATIC_MUTEX_INIT; -+static GMutex extra_lock; - - typedef struct { - int extra_fd; -@@ -93,7 +93,7 @@ dbus_connection_send_fd (DBusConnection *connection, - return FALSE; - } - -- g_static_mutex_lock (&extra_lock); -+ g_mutex_lock (&extra_lock); - - if (_g_socket_send_fd (extra->extra_fd, fd) == -1) - { -@@ -103,13 +103,13 @@ dbus_connection_send_fd (DBusConnection *connection, - g_io_error_from_errno (errsv), - _("Error sending file descriptor: %s"), - g_strerror (errsv)); -- g_static_mutex_unlock (&extra_lock); -+ g_mutex_unlock (&extra_lock); - return FALSE; - } - - *fd_id = extra->fd_count++; - -- g_static_mutex_unlock (&extra_lock); -+ g_mutex_unlock (&extra_lock); - - return TRUE; - } -diff --git a/daemon/main.c b/daemon/main.c -index 4703562..2b2d549 100644 ---- a/daemon/main.c -+++ b/daemon/main.c -@@ -52,8 +52,6 @@ main (int argc, char *argv[]) - bindtextdomain (GETTEXT_PACKAGE, GVFS_LOCALEDIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); -- -- g_thread_init (NULL); - - #ifdef SIGPIPE - signal (SIGPIPE, SIG_IGN); -diff --git a/metadata/metatree.c b/metadata/metatree.c -index 3420ad0..850866e 100644 ---- a/metadata/metatree.c -+++ b/metadata/metatree.c -@@ -68,7 +68,7 @@ - - #define KEY_IS_LIST_MASK (1<<31) - --static GStaticRWLock metatree_lock = G_STATIC_RW_LOCK_INIT; -+static GRWLock metatree_lock; - - typedef enum { - JOURNAL_OP_SET_KEY, -@@ -591,7 +591,7 @@ meta_tree_lookup_by_name (const char *name, - MetaTree * - meta_tree_ref (MetaTree *tree) - { -- g_atomic_int_exchange_and_add ((int *)&tree->ref_count, 1); -+ g_atomic_int_inc ((int *)&tree->ref_count); - return tree; - } - -@@ -672,17 +672,17 @@ meta_tree_refresh (MetaTree *tree) - { - gboolean needs_refresh; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - needs_refresh = - meta_tree_needs_rereading (tree) || - meta_tree_has_new_journal_entries (tree); -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - - if (needs_refresh) - { -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - meta_tree_refresh_locked (tree); -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - } - } - -@@ -1468,7 +1468,7 @@ meta_tree_lookup_key_type (MetaTree *tree, - MetaKeyType type; - gpointer value; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - new_path = meta_journal_reverse_map_path_and_key (tree->journal, - path, -@@ -1492,7 +1492,7 @@ meta_tree_lookup_key_type (MetaTree *tree, - type = META_KEY_TYPE_STRING; - - out: -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - return type; - } - -@@ -1506,7 +1506,7 @@ meta_tree_get_last_changed (MetaTree *tree, - gpointer value; - guint64 res, mtime; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - new_path = meta_journal_reverse_map_path_and_key (tree->journal, - path, -@@ -1526,7 +1526,7 @@ meta_tree_get_last_changed (MetaTree *tree, - g_free (new_path); - - out: -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - - return res; - } -@@ -1543,7 +1543,7 @@ meta_tree_lookup_string (MetaTree *tree, - char *new_path; - char *res; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - new_path = meta_journal_reverse_map_path_and_key (tree->journal, - path, -@@ -1572,7 +1572,7 @@ meta_tree_lookup_string (MetaTree *tree, - res = g_strdup (verify_string (tree, ent->value)); - - out: -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - - return res; - } -@@ -1621,7 +1621,7 @@ meta_tree_lookup_stringv (MetaTree *tree, - char **res; - guint32 num_strings, i; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - new_path = meta_journal_reverse_map_path_and_key (tree->journal, - path, -@@ -1658,7 +1658,7 @@ meta_tree_lookup_stringv (MetaTree *tree, - } - - out: -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - - return res; - } -@@ -1876,7 +1876,7 @@ meta_tree_enumerate_dir (MetaTree *tree, - MetaFileDir *dir; - char *res_path; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - data.children = children = - g_hash_table_new_full (g_str_hash, -@@ -1922,7 +1922,7 @@ meta_tree_enumerate_dir (MetaTree *tree, - out: - g_free (res_path); - g_hash_table_destroy (children); -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - } - - typedef struct { -@@ -2116,7 +2116,7 @@ meta_tree_enumerate_keys (MetaTree *tree, - GHashTableIter iter; - char *res_path; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - keydata.keys = keys = - g_hash_table_new_full (g_str_hash, -@@ -2170,7 +2170,7 @@ meta_tree_enumerate_keys (MetaTree *tree, - out: - g_free (res_path); - g_hash_table_destroy (keys); -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - } - - -@@ -2371,9 +2371,9 @@ meta_tree_flush (MetaTree *tree) - { - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - res = meta_tree_flush_locked (tree); -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2386,7 +2386,7 @@ meta_tree_unset (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2412,7 +2412,7 @@ meta_tree_unset (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2426,7 +2426,7 @@ meta_tree_set_string (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2452,7 +2452,7 @@ meta_tree_set_string (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2466,7 +2466,7 @@ meta_tree_set_stringv (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2492,7 +2492,7 @@ meta_tree_set_stringv (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2504,7 +2504,7 @@ meta_tree_remove (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2530,7 +2530,7 @@ meta_tree_remove (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2543,7 +2543,7 @@ meta_tree_copy (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2569,7 +2569,7 @@ meta_tree_copy (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -diff --git a/monitor/proxy/gvfsproxyvolumemonitordaemon.c b/monitor/proxy/gvfsproxyvolumemonitordaemon.c -index 4be64e0..fe2f1a7 100644 ---- a/monitor/proxy/gvfsproxyvolumemonitordaemon.c -+++ b/monitor/proxy/gvfsproxyvolumemonitordaemon.c -@@ -2050,7 +2050,6 @@ g_vfs_proxy_volume_monitor_daemon_init (void) - textdomain (GETTEXT_PACKAGE); - - dbus_threads_init_default (); -- g_thread_init (NULL); - g_type_init (); - } - --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gvfs/files/0003-Adapt-to-glib-mutex-API-changes.patch b/meta-gnome/recipes-gnome/gvfs/files/0003-Adapt-to-glib-mutex-API-changes.patch deleted file mode 100644 index bb5d9c23db..0000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0003-Adapt-to-glib-mutex-API-changes.patch +++ /dev/null @@ -1,2454 +0,0 @@ -From 185c4ac9c83aac035d2b49ecd95130aa5167e7c2 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek <tbzatek@redhat.com> -Date: Tue, 25 Oct 2011 18:41:47 +0200 -Subject: [PATCH 1/2] Adapt to glib mutex API changes - -A continuation to https://bugzilla.gnome.org/show_bug.cgi?id=661148 - -Upstream-Status: Backport - -Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> ---- - client/gvfsfusedaemon.c | 80 ++++++++--------- - common/gmountsource.c | 60 ++++++------- - daemon/gvfsbackendafc.c | 22 ++--- - daemon/gvfsbackendftp.c | 12 +-- - daemon/gvfsbackendftp.h | 4 +- - daemon/gvfsbackendgphoto2.c | 112 +++++++++++------------- - daemon/gvfsbackendnetwork.c | 10 +-- - daemon/gvfsbackendobexftp.c | 187 ++++++++++++++++++++-------------------- - daemon/gvfsbackendsmbbrowse.c | 39 ++++----- - daemon/gvfsdaemon.c | 33 ++++---- - daemon/gvfsftpdircache.c | 21 ++--- - daemon/gvfsftptask.c | 33 ++++---- - daemon/trashlib/trashexpunge.c | 33 ++++---- - daemon/trashlib/trashitem.c | 36 ++++---- - 14 files changed, 325 insertions(+), 357 deletions(-) - -diff --git a/client/gvfsfusedaemon.c b/client/gvfsfusedaemon.c -index 7cfa81c..c986f69 100644 ---- a/client/gvfsfusedaemon.c -+++ b/client/gvfsfusedaemon.c -@@ -69,7 +69,7 @@ typedef enum { - typedef struct { - gint refcount; - -- GMutex *mutex; -+ GMutex mutex; - gchar *path; - FileOp op; - gpointer stream; -@@ -84,13 +84,13 @@ static GVolumeMonitor *volume_monitor = NULL; - - /* Contains pointers to MountRecord */ - static GList *mount_list = NULL; --static GMutex *mount_list_mutex; -+static GMutex mount_list_mutex = {NULL}; - - static time_t daemon_creation_time; - static uid_t daemon_uid; - static gid_t daemon_gid; - --static GStaticMutex global_mutex = G_STATIC_MUTEX_INIT; -+static GMutex global_mutex = {NULL}; - static GHashTable *global_path_to_fh_map = NULL; - static GHashTable *global_active_fh_map = NULL; - -@@ -212,7 +212,6 @@ file_handle_new (const gchar *path) - - file_handle = g_new0 (FileHandle, 1); - file_handle->refcount = 1; -- file_handle->mutex = g_mutex_new (); - file_handle->op = FILE_OP_NONE; - file_handle->path = g_strdup (path); - -@@ -235,7 +234,7 @@ file_handle_unref (FileHandle *file_handle) - { - gint refs; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - /* Test again, since e.g. get_file_handle_for_path() might have - * snatched the global mutex and revived the file handle between -@@ -246,7 +245,7 @@ file_handle_unref (FileHandle *file_handle) - if (refs == 0) - g_hash_table_remove (global_path_to_fh_map, file_handle->path); - -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - } - } - -@@ -283,7 +282,7 @@ file_handle_free (FileHandle *file_handle) - g_hash_table_remove (global_active_fh_map, file_handle); - - file_handle_close_stream (file_handle); -- g_mutex_free (file_handle->mutex); -+ g_mutex_clear (&file_handle->mutex); - g_free (file_handle->path); - g_free (file_handle); - } -@@ -293,14 +292,14 @@ get_file_handle_for_path (const gchar *path) - { - FileHandle *fh; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - fh = g_hash_table_lookup (global_path_to_fh_map, path); - - if (fh) - file_handle_ref (fh); - -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - return fh; - } - -@@ -309,7 +308,7 @@ get_or_create_file_handle_for_path (const gchar *path) - { - FileHandle *fh; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - fh = g_hash_table_lookup (global_path_to_fh_map, path); - -@@ -323,7 +322,7 @@ get_or_create_file_handle_for_path (const gchar *path) - g_hash_table_insert (global_path_to_fh_map, fh->path, fh); - } - -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - return fh; - } - -@@ -332,7 +331,7 @@ get_file_handle_from_info (struct fuse_file_info *fi) - { - FileHandle *fh; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - fh = GET_FILE_HANDLE (fi); - -@@ -343,7 +342,7 @@ get_file_handle_from_info (struct fuse_file_info *fi) - if (fh) - file_handle_ref (fh); - -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - return fh; - } - -@@ -353,7 +352,7 @@ reindex_file_handle_for_path (const gchar *old_path, const gchar *new_path) - gchar *old_path_internal; - FileHandle *fh; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - if (!g_hash_table_lookup_extended (global_path_to_fh_map, old_path, - (gpointer *) &old_path_internal, -@@ -368,7 +367,7 @@ reindex_file_handle_for_path (const gchar *old_path, const gchar *new_path) - g_hash_table_insert (global_path_to_fh_map, fh->path, fh); - - out: -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - } - - static MountRecord * -@@ -405,13 +404,13 @@ mount_record_free (MountRecord *mount_record) - static void - mount_list_lock (void) - { -- g_mutex_lock (mount_list_mutex); -+ g_mutex_lock (&mount_list_mutex); - } - - static void - mount_list_unlock (void) - { -- g_mutex_unlock (mount_list_mutex); -+ g_mutex_unlock (&mount_list_mutex); - } - - static void -@@ -866,9 +865,9 @@ vfs_getattr (const gchar *path, struct stat *sbuf) - - if (fh != NULL) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - getattr_for_file_handle (fh, sbuf); -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - file_handle_unref (fh); - result = 0; -@@ -995,7 +994,7 @@ open_common (const gchar *path, struct fuse_file_info *fi, GFile *file, int outp - gint result; - FileHandle *fh = get_or_create_file_handle_for_path (path); - -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - SET_FILE_HANDLE (fi, fh); - -@@ -1009,7 +1008,7 @@ open_common (const gchar *path, struct fuse_file_info *fi, GFile *file, int outp - else - result = setup_input_stream (file, fh); - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - /* The added reference to the file handle is released in vfs_release() */ - return result; -@@ -1121,7 +1120,7 @@ vfs_create (const gchar *path, mode_t mode, struct fuse_file_info *fi) - - /* Success */ - -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - SET_FILE_HANDLE (fi, fh); - -@@ -1129,7 +1128,7 @@ vfs_create (const gchar *path, mode_t mode, struct fuse_file_info *fi) - fh->stream = file_output_stream; - fh->op = FILE_OP_WRITE; - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - /* The reference added to the file handle is released in vfs_release() */ - } -@@ -1285,7 +1284,7 @@ vfs_read (const gchar *path, gchar *buf, size_t size, - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - result = setup_input_stream (file, fh); - -@@ -1298,7 +1297,7 @@ vfs_read (const gchar *path, gchar *buf, size_t size, - debug_print ("vfs_read: failed to setup input_stream!\n"); - } - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - else -@@ -1413,7 +1412,7 @@ vfs_write (const gchar *path, const gchar *buf, size_t len, off_t offset, - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - result = setup_output_stream (file, fh, 0); - if (result == 0) -@@ -1421,7 +1420,7 @@ vfs_write (const gchar *path, const gchar *buf, size_t len, off_t offset, - result = write_stream (fh, buf, len, offset); - } - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - else -@@ -1453,9 +1452,9 @@ vfs_flush (const gchar *path, struct fuse_file_info *fi) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - file_handle_close_stream (fh); -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - /* get_file_handle_from_info () adds a "working ref", so release that. */ - file_handle_unref (fh); -@@ -1474,9 +1473,9 @@ vfs_fsync (const gchar *path, gint sync_data_only, struct fuse_file_info *fi) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - file_handle_close_stream (fh); -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - /* get_file_handle_from_info () adds a "working ref", so release that. */ - file_handle_unref (fh); -@@ -1625,7 +1624,7 @@ vfs_rename (const gchar *old_path, const gchar *new_path) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - file_handle_close_stream (fh); - } - -@@ -1645,7 +1644,7 @@ vfs_rename (const gchar *old_path, const gchar *new_path) - - if (fh) - { -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - -@@ -1687,7 +1686,7 @@ vfs_unlink (const gchar *path) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - file_handle_close_stream (fh); - } - -@@ -1695,7 +1694,7 @@ vfs_unlink (const gchar *path) - - if (fh) - { -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - -@@ -1864,7 +1863,7 @@ vfs_ftruncate (const gchar *path, off_t size, struct fuse_file_info *fi) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - result = setup_output_stream (file, fh, 0); - -@@ -1909,7 +1908,7 @@ vfs_ftruncate (const gchar *path, off_t size, struct fuse_file_info *fi) - } - } - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - else -@@ -1948,7 +1947,7 @@ vfs_truncate (const gchar *path, off_t size) - /* Get a file handle just to lock the path while we're working */ - fh = get_file_handle_for_path (path); - if (fh) -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - if (size == 0) - { -@@ -1975,7 +1974,7 @@ vfs_truncate (const gchar *path, off_t size) - - if (fh) - { -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - -@@ -2315,7 +2314,6 @@ vfs_init (struct fuse_conn_info *conn) - daemon_uid = getuid (); - daemon_gid = getgid (); - -- mount_list_mutex = g_mutex_new (); - global_path_to_fh_map = g_hash_table_new_full (g_str_hash, g_str_equal, - NULL, (GDestroyNotify) file_handle_free); - global_active_fh_map = g_hash_table_new_full (g_direct_hash, g_direct_equal, -@@ -2374,7 +2372,7 @@ vfs_destroy (gpointer param) - mount_list_free (); - if (subthread_main_loop != NULL) - g_main_loop_quit (subthread_main_loop); -- g_mutex_free (mount_list_mutex); -+ g_mutex_clear (&mount_list_mutex); - g_object_unref (gvfs); - } - -diff --git a/common/gmountsource.c b/common/gmountsource.c -index d228726..af89ed2 100644 ---- a/common/gmountsource.c -+++ b/common/gmountsource.c -@@ -27,6 +27,8 @@ - #include <gio/gio.h> - #include <gvfsdaemonprotocol.h> - -+#include <string.h> -+ - struct _GMountSource - { - GObject parent_instance; -@@ -137,8 +139,8 @@ typedef struct AskSyncData AskSyncData; - struct AskSyncData { - - /* For sync calls */ -- GMutex *mutex; -- GCond *cond; -+ GMutex mutex; -+ GCond cond; - - /* results: */ - GAsyncResult *result; -@@ -356,9 +358,9 @@ ask_reply_sync (GObject *source_object, - data->result = g_object_ref (res); - - /* Wake up sync call thread */ -- g_mutex_lock (data->mutex); -- g_cond_signal (data->cond); -- g_mutex_unlock (data->mutex); -+ g_mutex_lock (&data->mutex); -+ g_cond_signal (&data->cond); -+ g_mutex_unlock (&data->mutex); - } - - gboolean -@@ -375,12 +377,10 @@ g_mount_source_ask_password (GMountSource *source, - GPasswordSave *password_save_out) - { - gboolean handled; -- AskSyncData data = {NULL}; -- -- data.mutex = g_mutex_new (); -- data.cond = g_cond_new (); -+ AskSyncData data; - -- g_mutex_lock (data.mutex); -+ memset (&data, 0, sizeof (data)); -+ g_mutex_lock (&data.mutex); - - - g_mount_source_ask_password_async (source, -@@ -391,11 +391,11 @@ g_mount_source_ask_password (GMountSource *source, - ask_reply_sync, - &data); - -- g_cond_wait(data.cond, data.mutex); -- g_mutex_unlock (data.mutex); -+ g_cond_wait (&data.cond, &data.mutex); -+ g_mutex_unlock (&data.mutex); - -- g_cond_free (data.cond); -- g_mutex_free (data.mutex); -+ g_cond_clear (&data.cond); -+ g_mutex_clear (&data.mutex); - - - handled = g_mount_source_ask_password_finish (source, -@@ -546,12 +546,10 @@ g_mount_source_ask_question (GMountSource *source, - { - gint choice; - gboolean handled, aborted; -- AskSyncData data = {NULL}; -+ AskSyncData data; - -- data.mutex = g_mutex_new (); -- data.cond = g_cond_new (); -- -- g_mutex_lock (data.mutex); -+ memset (&data, 0, sizeof (data)); -+ g_mutex_lock (&data.mutex); - - g_mount_source_ask_question_async (source, - message, -@@ -560,11 +558,11 @@ g_mount_source_ask_question (GMountSource *source, - ask_reply_sync, - &data); - -- g_cond_wait(data.cond, data.mutex); -- g_mutex_unlock (data.mutex); -+ g_cond_wait (&data.cond, &data.mutex); -+ g_mutex_unlock (&data.mutex); - -- g_cond_free (data.cond); -- g_mutex_free (data.mutex); -+ g_cond_clear (&data.cond); -+ g_mutex_clear (&data.mutex); - - handled = g_mount_source_ask_question_finish (source, - data.result, -@@ -841,12 +839,10 @@ g_mount_source_show_processes (GMountSource *source, - { - gint choice; - gboolean handled, aborted; -- AskSyncData data = {NULL}; -- -- data.mutex = g_mutex_new (); -- data.cond = g_cond_new (); -+ AskSyncData data; - -- g_mutex_lock (data.mutex); -+ memset (&data, 0, sizeof (data)); -+ g_mutex_lock (&data.mutex); - - g_mount_source_show_processes_async (source, - message, -@@ -856,11 +852,11 @@ g_mount_source_show_processes (GMountSource *source, - ask_reply_sync, - &data); - -- g_cond_wait (data.cond, data.mutex); -- g_mutex_unlock (data.mutex); -+ g_cond_wait (&data.cond, &data.mutex); -+ g_mutex_unlock (&data.mutex); - -- g_cond_free (data.cond); -- g_mutex_free (data.mutex); -+ g_cond_clear (&data.cond); -+ g_mutex_clear (&data.mutex); - - handled = g_mount_source_show_processes_finish (source, - data.result, -diff --git a/daemon/gvfsbackendafc.c b/daemon/gvfsbackendafc.c -index 16c8a23..84227ed 100644 ---- a/daemon/gvfsbackendafc.c -+++ b/daemon/gvfsbackendafc.c -@@ -87,7 +87,7 @@ struct _GVfsBackendAfc { - GHashTable *apps; /* hash table of AppInfo */ - instproxy_client_t inst; - sbservices_client_t sbs; -- GMutex *apps_lock; -+ GMutex apps_lock; - }; - - struct afc_error_mapping { -@@ -182,11 +182,7 @@ g_vfs_backend_afc_close_connection (GVfsBackendAfc *self) - sbservices_client_free (self->sbs); - self->sbs = NULL; - } -- if (self->apps_lock) -- { -- g_mutex_free (self->apps_lock); -- self->apps_lock = NULL; -- } -+ g_mutex_clear (&self->apps_lock); - } - g_free (self->model); - self->model = NULL; -@@ -1910,14 +1906,14 @@ g_vfs_backend_afc_enumerate (GVfsBackend *backend, - { - char *app; - -- g_mutex_lock (self->apps_lock); -+ g_mutex_lock (&self->apps_lock); - if (g_vfs_backend_load_apps (self) == FALSE) - { - g_vfs_backend_afc_check (AFC_E_INTERNAL_ERROR, G_VFS_JOB (job)); -- g_mutex_unlock (self->apps_lock); -+ g_mutex_unlock (&self->apps_lock); - return; - } -- g_mutex_unlock (self->apps_lock); -+ g_mutex_unlock (&self->apps_lock); - - app = g_vfs_backend_parse_house_arrest_path (self, TRUE, path, &new_path); - -@@ -2039,14 +2035,14 @@ g_vfs_backend_afc_query_info (GVfsBackend *backend, - { - char *app; - -- g_mutex_lock (self->apps_lock); -+ g_mutex_lock (&self->apps_lock); - if (g_vfs_backend_load_apps (self) == FALSE) - { - g_vfs_backend_afc_check (AFC_E_INTERNAL_ERROR, G_VFS_JOB (job)); -- g_mutex_unlock (self->apps_lock); -+ g_mutex_unlock (&self->apps_lock); - return; - } -- g_mutex_unlock (self->apps_lock); -+ g_mutex_unlock (&self->apps_lock); - - app = g_vfs_backend_parse_house_arrest_path (self, TRUE, path, &new_path); - -@@ -2604,8 +2600,6 @@ g_vfs_backend_afc_init (GVfsBackendAfc *self) - /* enable full debugging */ - idevice_set_debug_level (1); - } -- -- self->apps_lock = g_mutex_new (); - } - - static void -diff --git a/daemon/gvfsbackendftp.c b/daemon/gvfsbackendftp.c -index 35e0b71..3883ca3 100644 ---- a/daemon/gvfsbackendftp.c -+++ b/daemon/gvfsbackendftp.c -@@ -382,8 +382,8 @@ g_vfs_backend_ftp_finalize (GObject *object) - - /* has been cleared on unmount */ - g_assert (ftp->queue == NULL); -- g_cond_free (ftp->cond); -- g_mutex_free (ftp->mutex); -+ g_cond_clear (&ftp->cond); -+ g_mutex_clear (&ftp->mutex); - - g_free (ftp->user); - g_free (ftp->password); -@@ -395,8 +395,6 @@ g_vfs_backend_ftp_finalize (GObject *object) - static void - g_vfs_backend_ftp_init (GVfsBackendFtp *ftp) - { -- ftp->mutex = g_mutex_new (); -- ftp->cond = g_cond_new (); - } - - static void -@@ -698,7 +696,7 @@ do_unmount (GVfsBackend * backend, - GVfsBackendFtp *ftp = G_VFS_BACKEND_FTP (backend); - GVfsFtpConnection *conn; - -- g_mutex_lock (ftp->mutex); -+ g_mutex_lock (&ftp->mutex); - while ((conn = g_queue_pop_head (ftp->queue))) - { - /* FIXME: properly quit */ -@@ -706,8 +704,8 @@ do_unmount (GVfsBackend * backend, - } - g_queue_free (ftp->queue); - ftp->queue = NULL; -- g_cond_broadcast (ftp->cond); -- g_mutex_unlock (ftp->mutex); -+ g_cond_broadcast (&ftp->cond); -+ g_mutex_unlock (&ftp->mutex); - g_vfs_job_succeeded (G_VFS_JOB (job)); - } - -diff --git a/daemon/gvfsbackendftp.h b/daemon/gvfsbackendftp.h -index f5983b5..767ea35 100644 ---- a/daemon/gvfsbackendftp.h -+++ b/daemon/gvfsbackendftp.h -@@ -100,8 +100,8 @@ struct _GVfsBackendFtp - GVfsFtpDirCache * dir_cache; /* directory cache */ - - /* connection collection - accessed from gvfsftptask.c */ -- GMutex * mutex; /* mutex protecting the following variables */ -- GCond * cond; /* cond used to signal tasks waiting on the mutex */ -+ GMutex mutex; /* mutex protecting the following variables */ -+ GCond cond; /* cond used to signal tasks waiting on the mutex */ - GQueue * queue; /* queue containing the connections */ - guint connections; /* current number of connections */ - guint busy_connections; /* current number of connections being used for reads/writes */ -diff --git a/daemon/gvfsbackendgphoto2.c b/daemon/gvfsbackendgphoto2.c -index 541dafe..9a1b6d8 100644 ---- a/daemon/gvfsbackendgphoto2.c -+++ b/daemon/gvfsbackendgphoto2.c -@@ -207,7 +207,7 @@ struct _GVfsBackendGphoto2 - * - * Must only be held for very short amounts of time (e.g. no IO). - */ -- GMutex *lock; -+ GMutex lock; - - /* CACHES */ - -@@ -433,7 +433,7 @@ caches_invalidate_all (GVfsBackendGphoto2 *gphoto2_backend) - { - DEBUG ("caches_invalidate_all()"); - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - if (gphoto2_backend->dir_name_cache != NULL) - g_hash_table_remove_all (gphoto2_backend->dir_name_cache); - if (gphoto2_backend->file_name_cache != NULL) -@@ -442,7 +442,7 @@ caches_invalidate_all (GVfsBackendGphoto2 *gphoto2_backend) - g_hash_table_remove_all (gphoto2_backend->info_cache); - gphoto2_backend->capacity = -1; - gphoto2_backend->free_space = -1; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - /* ------------------------------------------------------------------------------------------------- */ -@@ -450,9 +450,9 @@ caches_invalidate_all (GVfsBackendGphoto2 *gphoto2_backend) - static void - caches_invalidate_free_space (GVfsBackendGphoto2 *gphoto2_backend) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->free_space = -1; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - /* ------------------------------------------------------------------------------------------------- */ -@@ -461,11 +461,11 @@ static void - caches_invalidate_dir (GVfsBackendGphoto2 *gphoto2_backend, const char *dir) - { - DEBUG ("caches_invalidate_dir() for '%s'", dir); -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - g_hash_table_remove (gphoto2_backend->dir_name_cache, dir); - g_hash_table_remove (gphoto2_backend->file_name_cache, dir); - g_hash_table_remove (gphoto2_backend->info_cache, dir); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - /* ------------------------------------------------------------------------------------------------- */ -@@ -477,14 +477,14 @@ caches_invalidate_file (GVfsBackendGphoto2 *gphoto2_backend, const char *dir, co - - full_name = g_build_filename (dir, name, NULL); - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - /* this is essentially: caches_invalidate_dir (gphoto2_backend, dir); */ - g_hash_table_remove (gphoto2_backend->dir_name_cache, dir); - g_hash_table_remove (gphoto2_backend->file_name_cache, dir); - g_hash_table_remove (gphoto2_backend->info_cache, dir); - - g_hash_table_remove (gphoto2_backend->info_cache, full_name); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - DEBUG ("caches_invalidate_file() for '%s'", full_name); - g_free (full_name); -@@ -618,11 +618,7 @@ release_device (GVfsBackendGphoto2 *gphoto2_backend) - g_list_free (gphoto2_backend->file_monitor_proxies); - gphoto2_backend->file_monitor_proxies = NULL; - -- if (gphoto2_backend->lock != NULL) -- { -- g_mutex_free (gphoto2_backend->lock); -- gphoto2_backend->lock = NULL; -- } -+ g_mutex_clear (&gphoto2_backend->lock); - gphoto2_backend->capacity = -1; - gphoto2_backend->free_space = -1; - } -@@ -1099,17 +1095,17 @@ file_get_info (GVfsBackendGphoto2 *gphoto2_backend, - - - /* first look up cache */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - cached_info = g_hash_table_lookup (gphoto2_backend->info_cache, full_path); - if (cached_info != NULL) - { - g_file_info_copy_into (cached_info, info); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - DEBUG (" Using cached info %p for '%s'", cached_info, full_path); - ret = TRUE; - goto out; - } -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - if (try_cache_only) - goto out; -@@ -1307,9 +1303,9 @@ file_get_info (GVfsBackendGphoto2 *gphoto2_backend, - #ifndef DEBUG_NO_CACHING - cached_info = g_file_info_dup (info); - DEBUG (" Storing cached info %p for '%s'", cached_info, full_path); -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - g_hash_table_insert (gphoto2_backend->info_cache, g_strdup (full_path), cached_info); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - #endif - } - -@@ -1716,8 +1712,6 @@ do_mount (GVfsBackend *backend, - - gphoto2_backend->free_space = -1; - -- gphoto2_backend->lock = g_mutex_new (); -- - gphoto2_mount_spec = g_mount_spec_new ("gphoto2"); - g_mount_spec_set (gphoto2_mount_spec, "host", host); - g_vfs_backend_set_mount_spec (backend, gphoto2_mount_spec); -@@ -1860,9 +1854,9 @@ do_open_for_read_real (GVfsBackend *backend, - DEBUG (" data=%p size=%ld handle=%p get_preview=%d", - read_handle->data, read_handle->size, read_handle, get_preview); - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->open_read_handles = g_list_prepend (gphoto2_backend->open_read_handles, read_handle); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - read_handle->cursor = 0; - -@@ -2008,9 +2002,9 @@ do_close_read (GVfsBackend *backend, - - DEBUG ("close_read() handle=%p", handle); - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->open_read_handles = g_list_remove (gphoto2_backend->open_read_handles, read_handle); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - free_read_handle (read_handle); - -@@ -2140,11 +2134,11 @@ do_enumerate (GVfsBackend *backend, - g_free (as_name); - - /* first, list the folders */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - list = g_hash_table_lookup (gphoto2_backend->dir_name_cache, filename); - if (list == NULL) - { -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - ensure_not_dirty (gphoto2_backend); - -@@ -2169,7 +2163,7 @@ do_enumerate (GVfsBackend *backend, - DEBUG (" Using cached dir list for dir '%s'", filename); - using_cached_dir_list = TRUE; - gp_list_ref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - for (n = 0; n < gp_list_count (list); n++) - { -@@ -2193,25 +2187,25 @@ do_enumerate (GVfsBackend *backend, - if (!using_cached_dir_list) - { - #ifndef DEBUG_NO_CACHING -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - g_hash_table_insert (gphoto2_backend->dir_name_cache, g_strdup (filename), list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - #endif - } - else - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - - /* then list the files in each folder */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - list = g_hash_table_lookup (gphoto2_backend->file_name_cache, filename); - if (list == NULL) - { -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - ensure_not_dirty (gphoto2_backend); - - DEBUG (" Generating file list for dir '%s'", filename); -@@ -2235,7 +2229,7 @@ do_enumerate (GVfsBackend *backend, - DEBUG (" Using cached file list for dir '%s'", filename); - using_cached_file_list = TRUE; - gp_list_ref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - for (n = 0; n < gp_list_count (list); n++) - { -@@ -2260,16 +2254,16 @@ do_enumerate (GVfsBackend *backend, - if (!using_cached_file_list) - { - #ifndef DEBUG_NO_CACHING -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - g_hash_table_insert (gphoto2_backend->file_name_cache, g_strdup (filename), list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - #endif - } - else - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - /* and we're done */ -@@ -2307,15 +2301,15 @@ try_enumerate (GVfsBackend *backend, - DEBUG ("try_enumerate (%s)", given_filename); - - /* first, list the folders */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - list = g_hash_table_lookup (gphoto2_backend->dir_name_cache, filename); - if (list == NULL) - { -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - goto error_not_cached; - } - gp_list_ref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - for (n = 0; n < gp_list_count (list); n++) - { - gp_list_get_name (list, n, &name); -@@ -2323,27 +2317,27 @@ try_enumerate (GVfsBackend *backend, - info = g_file_info_new (); - if (!file_get_info (gphoto2_backend, filename, name, info, &error, TRUE)) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - goto error_not_cached; - } - l = g_list_append (l, info); - } -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - /* then list the files in each folder */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - list = g_hash_table_lookup (gphoto2_backend->file_name_cache, filename); - if (list == NULL) - { -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - goto error_not_cached; - } - gp_list_ref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - for (n = 0; n < gp_list_count (list); n++) - { - gp_list_get_name (list, n, &name); -@@ -2352,16 +2346,16 @@ try_enumerate (GVfsBackend *backend, - info = g_file_info_new (); - if (!file_get_info (gphoto2_backend, filename, name, info, &error, TRUE)) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - goto error_not_cached; - } - l = g_list_append (l, info); - } -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - /* and we're done */ - -@@ -2412,9 +2406,9 @@ do_query_fs_info (GVfsBackend *backend, - /* for now we only support a single storage head */ - if (storage_info[0].fields & GP_STORAGEINFO_MAXCAPACITY) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->capacity = storage_info[0].capacitykbytes * 1024; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - g_file_info_set_attribute_uint64 (info, - G_FILE_ATTRIBUTE_FILESYSTEM_SIZE, - (guint64) gphoto2_backend->capacity); -@@ -2422,9 +2416,9 @@ do_query_fs_info (GVfsBackend *backend, - - if (storage_info[0].fields & GP_STORAGEINFO_FREESPACEKBYTES) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->free_space = storage_info[0].freekbytes * 1024; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - g_file_info_set_attribute_uint64 (info, - G_FILE_ATTRIBUTE_FILESYSTEM_FREE, - (guint64) gphoto2_backend->free_space); -@@ -2454,10 +2448,10 @@ try_query_fs_info (GVfsBackend *backend, - - ret = FALSE; - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - free_space = gphoto2_backend->free_space; - capacity = gphoto2_backend->capacity; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - if (free_space == -1 || capacity == -1) - { -diff --git a/daemon/gvfsbackendnetwork.c b/daemon/gvfsbackendnetwork.c -index 80273e5..3c38514 100644 ---- a/daemon/gvfsbackendnetwork.c -+++ b/daemon/gvfsbackendnetwork.c -@@ -65,7 +65,7 @@ struct _GVfsBackendNetwork - gboolean have_smb; - char *current_workgroup; - GFileMonitor *smb_monitor; -- GMutex *smb_mount_lock; -+ GMutex smb_mount_lock; - GVfsJobMount *mount_job; - - /* DNS-SD Stuff */ -@@ -433,7 +433,7 @@ mount_smb_done_cb (GObject *object, - g_vfs_job_succeeded (G_VFS_JOB (backend->mount_job)); - g_object_unref (backend->mount_job); - } -- g_mutex_unlock (backend->smb_mount_lock); -+ g_mutex_unlock (&backend->smb_mount_lock); - } - - static void -@@ -442,7 +442,7 @@ remount_smb (GVfsBackendNetwork *backend, GVfsJobMount *job) - GFile *file; - char *workgroup; - -- if (! g_mutex_trylock (backend->smb_mount_lock)) -+ if (! g_mutex_trylock (&backend->smb_mount_lock)) - /* Do nothing when the mount operation is already active */ - return; - -@@ -769,8 +769,6 @@ g_vfs_backend_network_init (GVfsBackendNetwork *network_backend) - const char * const* supported_vfs; - int i; - -- network_backend->smb_mount_lock = g_mutex_new (); -- - supported_vfs = g_vfs_get_supported_uri_schemes (g_vfs_get_default ()); - - network_backend->have_smb = FALSE; -@@ -836,7 +834,7 @@ g_vfs_backend_network_finalize (GObject *object) - GVfsBackendNetwork *backend; - backend = G_VFS_BACKEND_NETWORK (object); - -- g_mutex_free (backend->smb_mount_lock); -+ g_mutex_clear (&backend->smb_mount_lock); - g_mount_spec_unref (backend->mount_spec); - g_object_unref (backend->root_monitor); - g_object_unref (backend->workgroup_icon); -diff --git a/daemon/gvfsbackendobexftp.c b/daemon/gvfsbackendobexftp.c -index 9630df8..62fe32f 100644 ---- a/daemon/gvfsbackendobexftp.c -+++ b/daemon/gvfsbackendobexftp.c -@@ -85,8 +85,8 @@ struct _GVfsBackendObexftp - DBusGProxy *session_proxy; - - /* Use for the async notifications and errors */ -- GCond *cond; -- GMutex *mutex; -+ GCond cond; -+ GMutex mutex; - int status; - gboolean doing_io; - GError *error; -@@ -494,8 +494,8 @@ g_vfs_backend_obexftp_finalize (GObject *object) - - if (backend->session_proxy != NULL) - g_object_unref (backend->session_proxy); -- g_mutex_free (backend->mutex); -- g_cond_free (backend->cond); -+ g_mutex_clear (&backend->mutex); -+ g_cond_clear (&backend->cond); - - if (G_OBJECT_CLASS (g_vfs_backend_obexftp_parent_class)->finalize) - (*G_OBJECT_CLASS (g_vfs_backend_obexftp_parent_class)->finalize) (object); -@@ -530,8 +530,6 @@ g_vfs_backend_obexftp_init (GVfsBackendObexftp *backend) - return; - } - -- backend->mutex = g_mutex_new (); -- backend->cond = g_cond_new (); - backend->manager_proxy = dbus_g_proxy_new_for_name (backend->connection, - "org.openobex", - "/org/openobex", -@@ -759,18 +757,18 @@ error_occurred_cb (DBusGProxy *proxy, const gchar *error_name, const gchar *erro - } - - /* Something is waiting on us */ -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - if (op_backend->doing_io) - { - op_backend->status = ASYNC_ERROR; - op_backend->error = g_error_new_literal (DBUS_GERROR, - DBUS_GERROR_REMOTE_EXCEPTION, - error_message); -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - return; - } -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_message ("Unhandled error, file a bug"); - _exit (1); -@@ -785,13 +783,13 @@ session_connect_error_cb (DBusGProxy *proxy, - { - GVfsBackendObexftp *op_backend = G_VFS_BACKEND_OBEXFTP (user_data); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->status = ASYNC_ERROR; - op_backend->error = g_error_new_literal (DBUS_GERROR, - DBUS_GERROR_REMOTE_EXCEPTION, - error_message); -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -801,10 +799,10 @@ session_connected_cb (DBusGProxy *proxy, - { - GVfsBackendObexftp *op_backend = G_VFS_BACKEND_OBEXFTP (user_data); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->status = ASYNC_SUCCESS; -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -814,10 +812,10 @@ cancelled_cb (DBusGProxy *proxy, gpointer user_data) - - g_message ("transfer got cancelled"); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->status = ASYNC_ERROR; -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -979,17 +977,16 @@ do_mount (GVfsBackend *backend, - - /* Now wait until the device is connected */ - count = 0; -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - while (op_backend->status == ASYNC_PENDING && count < 100) { -- GTimeVal val; -- g_get_current_time (&val); -- g_time_val_add (&val, 100000); -+ gint64 end_time; -+ end_time = g_get_monotonic_time () + 100 * G_TIME_SPAN_MILLISECOND; - count++; -- if (g_cond_timed_wait (op_backend->cond, op_backend->mutex, &val) != FALSE) -+ if (g_cond_wait_until (&op_backend->cond, &op_backend->mutex, end_time) != FALSE) - break; - } -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - if (op_backend->status == ASYNC_ERROR || op_backend->status == ASYNC_PENDING) - { -@@ -1026,10 +1023,10 @@ transfer_started_cb (DBusGProxy *proxy, const gchar *filename, - - g_message ("transfer of %s to %s started", filename, local_path); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->status = ASYNC_SUCCESS; -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -1047,7 +1044,7 @@ do_open_for_read (GVfsBackend *backend, - - g_debug ("+ do_open_for_read, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->doing_io = TRUE; - - /* Change into the directory and cache the file size */ -@@ -1055,7 +1052,7 @@ do_open_for_read (GVfsBackend *backend, - if (_query_file_info_helper (backend, filename, info, &error) == FALSE) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - g_object_unref (info); -@@ -1065,7 +1062,7 @@ do_open_for_read (GVfsBackend *backend, - if (g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_IS_DIRECTORY, - _("Can't open directory")); -@@ -1079,7 +1076,7 @@ do_open_for_read (GVfsBackend *backend, - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1091,7 +1088,7 @@ do_open_for_read (GVfsBackend *backend, - if (fd < 0) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1100,7 +1097,7 @@ do_open_for_read (GVfsBackend *backend, - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1134,13 +1131,13 @@ do_open_for_read (GVfsBackend *backend, - close (fd); - - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - return; - } - - /* Wait for TransferStarted or ErrorOccurred to have happened */ - while (op_backend->status == ASYNC_PENDING) -- g_cond_wait (op_backend->cond, op_backend->mutex); -+ g_cond_wait (&op_backend->cond, &op_backend->mutex); - success = op_backend->status; - dbus_g_proxy_disconnect_signal(op_backend->session_proxy, "TransferStarted", - G_CALLBACK(transfer_started_cb), op_backend); -@@ -1158,7 +1155,7 @@ do_open_for_read (GVfsBackend *backend, - if (success == ASYNC_ERROR) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - close (fd); - g_vfs_job_failed_from_error (G_VFS_JOB (job), - op_backend->error); -@@ -1179,7 +1176,7 @@ do_open_for_read (GVfsBackend *backend, - g_vfs_job_succeeded (G_VFS_JOB (job)); - - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - } - - static int -@@ -1266,7 +1263,7 @@ do_close_read (GVfsBackend *backend, - return; - } - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - if (busy > 0) - { -@@ -1276,11 +1273,11 @@ do_close_read (GVfsBackend *backend, - G_TYPE_INVALID, G_TYPE_INVALID) != FALSE) - { - while (op_backend->status == ASYNC_PENDING) -- g_cond_wait (op_backend->cond, op_backend->mutex); -+ g_cond_wait (&op_backend->cond, &op_backend->mutex); - } - } - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - close (backend_handle->fd); - g_free (backend_handle->source); -@@ -1304,17 +1301,17 @@ do_query_info (GVfsBackend *backend, - - g_debug ("+ do_query_info, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - if (_query_file_info_helper (backend, filename, info, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; - } - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_vfs_job_succeeded (G_VFS_JOB (job)); - -@@ -1341,14 +1338,14 @@ do_query_fs_info (GVfsBackend *backend, - - g_debug ("+ do_query_fs_info, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - /* Get the capabilities */ - if (dbus_g_proxy_call (op_backend->session_proxy, "GetCapability", &error, - G_TYPE_INVALID, - G_TYPE_STRING, &caps_str, G_TYPE_INVALID) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1356,7 +1353,7 @@ do_query_fs_info (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1368,7 +1365,7 @@ do_query_fs_info (GVfsBackend *backend, - if (caps_str == NULL) - { - /* Best effort, don't error out */ -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_succeeded (G_VFS_JOB (job)); - return; - } -@@ -1377,7 +1374,7 @@ do_query_fs_info (GVfsBackend *backend, - g_free (caps_str); - if (caps == NULL) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1395,7 +1392,7 @@ do_query_fs_info (GVfsBackend *backend, - } - if (has_free_memory == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - /* Best effort, don't error out */ - g_vfs_job_succeeded (G_VFS_JOB (job)); - return; -@@ -1411,7 +1408,7 @@ do_query_fs_info (GVfsBackend *backend, - - if (_query_file_info_helper (backend, filename, info, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - ovu_caps_free (caps); -@@ -1420,7 +1417,7 @@ do_query_fs_info (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1457,7 +1454,7 @@ set_info_from_memory: - - g_vfs_job_succeeded (G_VFS_JOB (job)); - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_query_fs_info\n"); - } -@@ -1476,11 +1473,11 @@ do_enumerate (GVfsBackend *backend, - - g_debug ("+ do_enumerate, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - if (_change_directory (op_backend, filename, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1489,7 +1486,7 @@ do_enumerate (GVfsBackend *backend, - files = NULL; - if (_retrieve_folder_listing (backend, filename, &files, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1497,7 +1494,7 @@ do_enumerate (GVfsBackend *backend, - - if (gvfsbackendobexftp_fl_parser_parse (files, strlen (files), &elements, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - /* See http://web.archive.org/web/20070826221251/http://docs.kde.org/development/en/extragear-pim/kdebluetooth/components.kio_obex.html#devices - * for the reasoning */ - if (strstr (files, "SYSTEM\"obex-folder-listing.dtd") != NULL && _is_nokia_3650 (op_backend->bdaddr)) -@@ -1525,7 +1522,7 @@ do_enumerate (GVfsBackend *backend, - g_list_free (elements); - g_vfs_job_enumerate_done (job); - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_enumerate\n"); - } -@@ -1549,7 +1546,7 @@ push_transfer_started_cb (DBusGProxy *proxy, - - g_message ("transfer of %s to %s started", filename, local_path); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - op_backend->status = ASYNC_RUNNING; - job_data->total_bytes = (goffset) total_bytes; -@@ -1557,8 +1554,8 @@ push_transfer_started_cb (DBusGProxy *proxy, - job_data->progress_callback (0, job_data->total_bytes, - job_data->progress_callback_data); - -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -1570,12 +1567,12 @@ push_transfer_completed_cb (DBusGProxy *proxy, - - g_message ("transfer completed"); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - op_backend->status = ASYNC_SUCCESS; - -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -1657,7 +1654,7 @@ _push_single_file_helper (GVfsBackendObexftp *op_backend, - - /* wait for the TransferStarted or ErrorOccurred signal */ - while (op_backend->status == ASYNC_PENDING) -- g_cond_wait (op_backend->cond, op_backend->mutex); -+ g_cond_wait (&op_backend->cond, &op_backend->mutex); - - dbus_g_proxy_disconnect_signal (op_backend->session_proxy, "TransferStarted", - G_CALLBACK (push_transfer_started_cb), job_data); -@@ -1678,7 +1675,7 @@ _push_single_file_helper (GVfsBackendObexftp *op_backend, - } - - while (op_backend->status == ASYNC_RUNNING) -- g_cond_wait (op_backend->cond, op_backend->mutex); -+ g_cond_wait (&op_backend->cond, &op_backend->mutex); - - dbus_g_proxy_disconnect_signal (op_backend->session_proxy, "TransferCompleted", - G_CALLBACK (push_transfer_completed_cb), job_data); -@@ -1717,7 +1714,7 @@ do_push (GVfsBackend *backend, - - g_debug ("+ do_push, destination: %s, local_path: %s\n", destination, local_path); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->doing_io = TRUE; - - overwrite = (flags & G_FILE_COPY_OVERWRITE); -@@ -1728,7 +1725,7 @@ do_push (GVfsBackend *backend, - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, -@@ -1743,7 +1740,7 @@ do_push (GVfsBackend *backend, - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); -@@ -1766,7 +1763,7 @@ do_push (GVfsBackend *backend, - if (is_dir) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - if (target_type != 0) - { -@@ -1799,7 +1796,7 @@ do_push (GVfsBackend *backend, - if (target_type != 0) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - if (overwrite) - { -@@ -1831,7 +1828,7 @@ do_push (GVfsBackend *backend, - &error, job_data) == FALSE) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - push_data_free (job_data); - - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); -@@ -1859,7 +1856,7 @@ do_push (GVfsBackend *backend, - g_vfs_job_succeeded (G_VFS_JOB (job)); - - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_push\n"); - } -@@ -1876,13 +1873,13 @@ do_delete (GVfsBackend *backend, - - g_debug ("+ do_delete, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - /* Check whether we have a directory */ - info = g_file_info_new (); - if (_query_file_info_helper (backend, filename, info, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - g_object_unref (info); -@@ -1891,7 +1888,7 @@ do_delete (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1910,7 +1907,7 @@ do_delete (GVfsBackend *backend, - - if (_change_directory (op_backend, filename, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1918,7 +1915,7 @@ do_delete (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1928,7 +1925,7 @@ do_delete (GVfsBackend *backend, - files = NULL; - if (_retrieve_folder_listing (backend, filename, &files, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1936,7 +1933,7 @@ do_delete (GVfsBackend *backend, - - if (gvfsbackendobexftp_fl_parser_parse (files, strlen (files), &elements, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_message ("gvfsbackendobexftp_fl_parser_parse failed"); - g_free (files); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); -@@ -1951,7 +1948,7 @@ do_delete (GVfsBackend *backend, - - if (len != 0) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_set_error_literal (&error, G_IO_ERROR, - G_IO_ERROR_NOT_EMPTY, - g_strerror (ENOTEMPTY)); -@@ -1969,7 +1966,7 @@ do_delete (GVfsBackend *backend, - if (strcmp (basename, G_DIR_SEPARATOR_S) == 0 - || strcmp (basename, ".") == 0) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_free (basename); - g_vfs_job_failed_from_errno (G_VFS_JOB (job), EPERM); - return; -@@ -1977,7 +1974,7 @@ do_delete (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1988,7 +1985,7 @@ do_delete (GVfsBackend *backend, - parent = g_path_get_dirname (filename); - if (_change_directory (op_backend, parent, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_free (basename); - g_free (parent); -@@ -1999,7 +1996,7 @@ do_delete (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -2011,7 +2008,7 @@ do_delete (GVfsBackend *backend, - G_TYPE_STRING, basename, G_TYPE_INVALID, - G_TYPE_INVALID) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -2020,7 +2017,7 @@ do_delete (GVfsBackend *backend, - - g_vfs_job_succeeded (G_VFS_JOB (job)); - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_delete\n"); - } -@@ -2037,13 +2034,13 @@ do_make_directory (GVfsBackend *backend, - - g_debug ("+ do_make_directory, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - /* Check if the folder already exists */ - info = g_file_info_new (); - if (_query_file_info_helper (backend, filename, info, &error) != FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_object_unref (info); - g_vfs_job_failed_from_errno (G_VFS_JOB (job), EEXIST); - return; -@@ -2051,7 +2048,7 @@ do_make_directory (GVfsBackend *backend, - g_object_unref (info); - if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -2062,7 +2059,7 @@ do_make_directory (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -2072,7 +2069,7 @@ do_make_directory (GVfsBackend *backend, - parent = g_path_get_dirname (filename); - if (_change_directory (op_backend, parent, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -2081,7 +2078,7 @@ do_make_directory (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -2093,7 +2090,7 @@ do_make_directory (GVfsBackend *backend, - G_TYPE_STRING, basename, G_TYPE_INVALID, - G_TYPE_INVALID) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_free (basename); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); -@@ -2108,7 +2105,7 @@ do_make_directory (GVfsBackend *backend, - - g_vfs_job_succeeded (G_VFS_JOB (job)); - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_make_directory\n"); - } -diff --git a/daemon/gvfsbackendsmbbrowse.c b/daemon/gvfsbackendsmbbrowse.c -index 01d7da6..f1055c5 100644 ---- a/daemon/gvfsbackendsmbbrowse.c -+++ b/daemon/gvfsbackendsmbbrowse.c -@@ -94,8 +94,8 @@ struct _GVfsBackendSmbBrowse - gboolean password_in_keyring; - GPasswordSave password_save; - -- GMutex *entries_lock; -- GMutex *update_cache_lock; -+ GMutex entries_lock; -+ GMutex update_cache_lock; - time_t last_entry_update; - GList *entries; - int entry_errno; -@@ -226,8 +226,8 @@ g_vfs_backend_smb_browse_finalize (GObject *object) - g_free (backend->server); - g_free (backend->default_workgroup); - -- g_mutex_free (backend->entries_lock); -- g_mutex_free (backend->update_cache_lock); -+ g_mutex_clear (&backend->entries_lock); -+ g_mutex_clear (&backend->update_cache_lock); - - smbc_free_context (backend->smb_context, TRUE); - -@@ -244,9 +244,6 @@ g_vfs_backend_smb_browse_init (GVfsBackendSmbBrowse *backend) - char *workgroup; - GSettings *settings; - -- backend->entries_lock = g_mutex_new (); -- backend->update_cache_lock = g_mutex_new (); -- - if (mount_tracker == NULL) - mount_tracker = g_mount_tracker_new (NULL); - -@@ -592,7 +589,7 @@ update_cache (GVfsBackendSmbBrowse *backend, SMBCFILE *supplied_dir) - entry_errno = 0; - res = -1; - -- g_mutex_lock (backend->update_cache_lock); -+ g_mutex_lock (&backend->update_cache_lock); - - DEBUG ("update_cache - updating...\n"); - -@@ -665,7 +662,7 @@ update_cache (GVfsBackendSmbBrowse *backend, SMBCFILE *supplied_dir) - - out: - -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - - /* Clear old cache */ - g_list_foreach (backend->entries, (GFunc)browse_entry_free, NULL); -@@ -676,8 +673,8 @@ update_cache (GVfsBackendSmbBrowse *backend, SMBCFILE *supplied_dir) - - DEBUG ("update_cache - done.\n"); - -- g_mutex_unlock (backend->entries_lock); -- g_mutex_unlock (backend->update_cache_lock); -+ g_mutex_unlock (&backend->entries_lock); -+ g_mutex_unlock (&backend->update_cache_lock); - - return (res >= 0); - } -@@ -780,9 +777,9 @@ has_name (GVfsBackendSmbBrowse *backend, - { - gboolean res; - -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - res = (find_entry_unlocked (backend, filename) != NULL); -- g_mutex_unlock (backend->entries_lock); -+ g_mutex_unlock (&backend->entries_lock); - return res; - } - -@@ -793,11 +790,11 @@ cache_needs_updating (GVfsBackendSmbBrowse *backend) - gboolean res; - - /* If there's already cache update in progress, lock and wait until update is finished, then recheck */ -- g_mutex_lock (backend->update_cache_lock); -+ g_mutex_lock (&backend->update_cache_lock); - now = time (NULL); - res = now < backend->last_entry_update || - (now - backend->last_entry_update) > DEFAULT_CACHE_EXPIRATION_TIME; -- g_mutex_unlock (backend->update_cache_lock); -+ g_mutex_unlock (&backend->update_cache_lock); - - return res; - } -@@ -1070,7 +1067,7 @@ run_mount_mountable (GVfsBackendSmbBrowse *backend, - GError *error = NULL; - GMountSpec *mount_spec; - -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - - entry = find_entry_unlocked (backend, filename); - -@@ -1093,7 +1090,7 @@ run_mount_mountable (GVfsBackendSmbBrowse *backend, - G_IO_ERROR, G_IO_ERROR_NOT_FOUND, - _("File doesn't exist")); - -- g_mutex_unlock (backend->entries_lock); -+ g_mutex_unlock (&backend->entries_lock); - - if (error) - { -@@ -1316,14 +1313,14 @@ run_query_info (GVfsBackendSmbBrowse *backend, - { - BrowseEntry *entry; - -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - - entry = find_entry_unlocked (backend, filename); - - if (entry) - get_file_info_from_entry (backend, entry, info); - -- g_mutex_unlock (backend->entries_lock); -+ g_mutex_unlock (&backend->entries_lock); - - if (entry) - g_vfs_job_succeeded (G_VFS_JOB (job)); -@@ -1408,7 +1405,7 @@ run_enumerate (GVfsBackendSmbBrowse *backend, - g_vfs_job_succeeded (G_VFS_JOB (job)); - - files = NULL; -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - for (l = backend->entries; l != NULL; l = l->next) - { - BrowseEntry *entry = l->data; -@@ -1418,7 +1415,7 @@ run_enumerate (GVfsBackendSmbBrowse *backend, - - files = g_list_prepend (files, info); - } -- g_mutex_unlock (backend->entries_lock); -+ g_mutex_unlock (&backend->entries_lock); - - files = g_list_reverse (files); - -diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c -index 9714b39..4f59b94 100644 ---- a/daemon/gvfsdaemon.c -+++ b/daemon/gvfsdaemon.c -@@ -58,7 +58,7 @@ struct _GVfsDaemon - { - GObject parent_instance; - -- GMutex *lock; -+ GMutex lock; - gboolean main_daemon; - - GThreadPool *thread_pool; -@@ -119,7 +119,7 @@ g_vfs_daemon_finalize (GObject *object) - g_assert (daemon->jobs == NULL); - - g_hash_table_destroy (daemon->registered_paths); -- g_mutex_free (daemon->lock); -+ g_mutex_clear (&daemon->lock); - - if (G_OBJECT_CLASS (g_vfs_daemon_parent_class)->finalize) - (*G_OBJECT_CLASS (g_vfs_daemon_parent_class)->finalize) (object); -@@ -150,7 +150,6 @@ g_vfs_daemon_init (GVfsDaemon *daemon) - gint max_threads = 1; /* TODO: handle max threads */ - DBusError error; - -- daemon->lock = g_mutex_new (); - daemon->session_bus = dbus_bus_get (DBUS_BUS_SESSION, NULL); - daemon->thread_pool = g_thread_pool_new (job_handler_callback, - daemon, -@@ -326,7 +325,7 @@ static void - job_source_closed_callback (GVfsJobSource *job_source, - GVfsDaemon *daemon) - { -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - - daemon->job_sources = g_list_remove (daemon->job_sources, - job_source); -@@ -343,7 +342,7 @@ job_source_closed_callback (GVfsJobSource *job_source, - if (daemon->job_sources == NULL) - daemon_schedule_exit (daemon); - -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - } - - static void -@@ -351,7 +350,7 @@ g_vfs_daemon_re_register_job_sources (GVfsDaemon *daemon) - { - GList *l; - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - - for (l = daemon->job_sources; l != NULL; l = l->next) - { -@@ -366,7 +365,7 @@ g_vfs_daemon_re_register_job_sources (GVfsDaemon *daemon) - } - } - -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - } - - void -@@ -375,7 +374,7 @@ g_vfs_daemon_add_job_source (GVfsDaemon *daemon, - { - g_debug ("Added new job source %p (%s)\n", job_source, g_type_name_from_instance ((gpointer)job_source)); - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - - daemon_unschedule_exit (daemon); - -@@ -387,7 +386,7 @@ g_vfs_daemon_add_job_source (GVfsDaemon *daemon, - g_signal_connect (job_source, "closed", - (GCallback)job_source_closed_callback, daemon); - -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - } - - /* This registers a dbus callback on *all* connections, client and session bus */ -@@ -437,9 +436,9 @@ job_finished_callback (GVfsJob *job, - (GCallback)job_finished_callback, - daemon); - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - daemon->jobs = g_list_remove (daemon->jobs, job); -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - - g_object_unref (job); - } -@@ -454,9 +453,9 @@ g_vfs_daemon_queue_job (GVfsDaemon *daemon, - g_signal_connect (job, "finished", (GCallback)job_finished_callback, daemon); - g_signal_connect (job, "new_source", (GCallback)job_new_source_callback, daemon); - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - daemon->jobs = g_list_prepend (daemon->jobs, job); -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - - /* Can we start the job immediately / async */ - if (!g_vfs_job_try (job)) -@@ -949,7 +948,7 @@ daemon_message_func (DBusConnection *conn, - DBUS_TYPE_UINT32, &serial, - DBUS_TYPE_INVALID)) - { -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - for (l = daemon->jobs; l != NULL; l = l->next) - { - GVfsJob *job = l->data; -@@ -962,7 +961,7 @@ daemon_message_func (DBusConnection *conn, - break; - } - } -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - - - if (job_to_cancel) -@@ -1007,7 +1006,7 @@ peer_to_peer_filter_func (DBusConnection *conn, - { - GList *l; - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - for (l = daemon->jobs; l != NULL; l = l->next) - { - GVfsJob *job = l->data; -@@ -1016,7 +1015,7 @@ peer_to_peer_filter_func (DBusConnection *conn, - G_VFS_JOB_DBUS (job)->connection == conn) - g_vfs_job_cancel (job); - } -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - - /* The peer-to-peer connection was disconnected */ - dbus_connection_unref (conn); -diff --git a/daemon/gvfsftpdircache.c b/daemon/gvfsftpdircache.c -index cd19c17..49023b1 100644 ---- a/daemon/gvfsftpdircache.c -+++ b/daemon/gvfsftpdircache.c -@@ -98,7 +98,7 @@ struct _GVfsFtpDirCache - { - GHashTable * directories; /* GVfsFtpFile of directory => GVfsFtpDirCacheEntry mapping */ - guint stamp; /* used to identify validity of cache when flushing */ -- GMutex * lock; /* mutex for thread safety of stamp and hash table */ -+ GMutex lock; /* mutex for thread safety of stamp and hash table */ - const GVfsFtpDirFuncs *funcs; /* functions to call */ - }; - -@@ -114,7 +114,6 @@ g_vfs_ftp_dir_cache_new (const GVfsFtpDirFuncs *funcs) - g_vfs_ftp_file_equal, - (GDestroyNotify) g_vfs_ftp_file_free, - (GDestroyNotify) g_vfs_ftp_dir_cache_entry_unref); -- cache->lock = g_mutex_new(); - cache->funcs = funcs; - - return cache; -@@ -126,7 +125,7 @@ g_vfs_ftp_dir_cache_free (GVfsFtpDirCache *cache) - g_return_if_fail (cache != NULL); - - g_hash_table_destroy (cache->directories); -- g_mutex_free (cache->lock); -+ g_mutex_clear (&cache->lock); - g_slice_free (GVfsFtpDirCache, cache); - } - -@@ -138,11 +137,11 @@ g_vfs_ftp_dir_cache_lookup_entry (GVfsFtpDirCache * cache, - { - GVfsFtpDirCacheEntry *entry; - -- g_mutex_lock (cache->lock); -+ g_mutex_lock (&cache->lock); - entry = g_hash_table_lookup (cache->directories, dir); - if (entry) - g_vfs_ftp_dir_cache_entry_ref (entry); -- g_mutex_unlock (cache->lock); -+ g_mutex_unlock (&cache->lock); - if (entry && entry->stamp < stamp) - g_vfs_ftp_dir_cache_entry_unref (entry); - else if (entry) -@@ -178,11 +177,11 @@ g_vfs_ftp_dir_cache_lookup_entry (GVfsFtpDirCache * cache, - g_vfs_ftp_dir_cache_entry_unref (entry); - return NULL; - } -- g_mutex_lock (cache->lock); -+ g_mutex_lock (&cache->lock); - g_hash_table_insert (cache->directories, - g_vfs_ftp_file_copy (dir), - g_vfs_ftp_dir_cache_entry_ref (entry)); -- g_mutex_unlock (cache->lock); -+ g_mutex_unlock (&cache->lock); - return entry; - } - -@@ -357,10 +356,10 @@ g_vfs_ftp_dir_cache_lookup_dir (GVfsFtpDirCache * cache, - - if (flush) - { -- g_mutex_lock (cache->lock); -+ g_mutex_lock (&cache->lock); - g_assert (cache->stamp != G_MAXUINT); - stamp = ++cache->stamp; -- g_mutex_unlock (cache->lock); -+ g_mutex_unlock (&cache->lock); - } - else - stamp = 0; -@@ -390,9 +389,9 @@ g_vfs_ftp_dir_cache_purge_dir (GVfsFtpDirCache * cache, - g_return_if_fail (cache != NULL); - g_return_if_fail (dir != NULL); - -- g_mutex_lock (cache->lock); -+ g_mutex_lock (&cache->lock); - g_hash_table_remove (cache->directories, dir); -- g_mutex_unlock (cache->lock); -+ g_mutex_unlock (&cache->lock); - } - - void -diff --git a/daemon/gvfsftptask.c b/daemon/gvfsftptask.c -index 8c5f7fb..f83882a 100644 ---- a/daemon/gvfsftptask.c -+++ b/daemon/gvfsftptask.c -@@ -180,7 +180,7 @@ static gboolean - g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - { - GVfsBackendFtp *ftp; -- GTimeVal now; -+ gint64 end_time; - gulong id; - - g_return_val_if_fail (task != NULL, FALSE); -@@ -190,10 +190,10 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - return FALSE; - - ftp = task->backend; -- g_mutex_lock (ftp->mutex); -+ g_mutex_lock (&ftp->mutex); - id = g_cancellable_connect (task->cancellable, - G_CALLBACK (do_broadcast), -- ftp->cond, NULL); -+ &ftp->cond, NULL); - while (task->conn == NULL && ftp->queue != NULL) - { - if (g_cancellable_is_cancelled (task->cancellable)) -@@ -218,7 +218,7 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - - ftp->connections++; - last_thread = g_thread_self (); -- g_mutex_unlock (ftp->mutex); -+ g_mutex_unlock (&ftp->mutex); - task->conn = g_vfs_ftp_connection_new (ftp->addr, task->cancellable, &task->error); - if (G_LIKELY (task->conn != NULL)) - { -@@ -231,7 +231,7 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - - g_vfs_ftp_connection_free (task->conn); - task->conn = NULL; -- g_mutex_lock (ftp->mutex); -+ g_mutex_lock (&ftp->mutex); - ftp->connections--; - /* If this value is still equal to our thread it means there were no races - * trying to open connections and the maybe_max_connections value is -@@ -253,10 +253,9 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - continue; - } - -- g_get_current_time (&now); -- g_time_val_add (&now, G_VFS_FTP_TIMEOUT_IN_SECONDS * 1000 * 1000); -+ end_time = g_get_monotonic_time () + G_VFS_FTP_TIMEOUT_IN_SECONDS * G_TIME_SPAN_SECOND; - if (ftp->busy_connections >= ftp->connections || -- !g_cond_timed_wait (ftp->cond, ftp->mutex, &now)) -+ !g_cond_wait_until (&ftp->cond, &ftp->mutex, end_time)) - { - task->error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_BUSY, - _("The FTP server is busy. Try again later")); -@@ -264,7 +263,7 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - } - } - g_cancellable_disconnect (task->cancellable, id); -- g_mutex_unlock (ftp->mutex); -+ g_mutex_unlock (&ftp->mutex); - - return task->conn != NULL; - } -@@ -287,18 +286,18 @@ g_vfs_ftp_task_release_connection (GVfsFtpTask *task) - if (task->conn == NULL) - return; - -- g_mutex_lock (task->backend->mutex); -+ g_mutex_lock (&task->backend->mutex); - if (task->backend->queue && g_vfs_ftp_connection_is_usable (task->conn)) - { - g_queue_push_tail (task->backend->queue, task->conn); -- g_cond_signal (task->backend->cond); -+ g_cond_signal (&task->backend->cond); - } - else - { - task->backend->connections--; - g_vfs_ftp_connection_free (task->conn); - } -- g_mutex_unlock (task->backend->mutex); -+ g_mutex_unlock (&task->backend->mutex); - task->conn = NULL; - } - -@@ -434,10 +433,10 @@ g_vfs_ftp_task_give_connection (GVfsFtpTask * task, - - task->conn = conn; - /* this connection is not busy anymore */ -- g_mutex_lock (task->backend->mutex); -+ g_mutex_lock (&task->backend->mutex); - g_assert (task->backend->busy_connections > 0); - task->backend->busy_connections--; -- g_mutex_unlock (task->backend->mutex); -+ g_mutex_unlock (&task->backend->mutex); - } - - /** -@@ -465,13 +464,13 @@ g_vfs_ftp_task_take_connection (GVfsFtpTask *task) - - ftp = task->backend; - /* mark this connection as busy */ -- g_mutex_lock (ftp->mutex); -+ g_mutex_lock (&ftp->mutex); - ftp->busy_connections++; - /* if all connections are busy, signal all waiting threads, - * so they stop waiting and return BUSY earlier */ - if (ftp->busy_connections >= ftp->connections) -- g_cond_broadcast (ftp->cond); -- g_mutex_unlock (ftp->mutex); -+ g_cond_broadcast (&ftp->cond); -+ g_mutex_unlock (&ftp->mutex); - - return conn; - } -diff --git a/daemon/trashlib/trashexpunge.c b/daemon/trashlib/trashexpunge.c -index 782be54..a5cf975 100644 ---- a/daemon/trashlib/trashexpunge.c -+++ b/daemon/trashlib/trashexpunge.c -@@ -11,8 +11,8 @@ - static gsize trash_expunge_initialised; - static GHashTable *trash_expunge_queue; - static gboolean trash_expunge_alive; --static GMutex *trash_expunge_lock; --static GCond *trash_expunge_wait; -+static GMutex trash_expunge_lock; -+static GCond trash_expunge_wait; - - static void - trash_expunge_delete_everything_under (GFile *directory) -@@ -66,9 +66,9 @@ just_return_true (gpointer a, - static gpointer - trash_expunge_thread (gpointer data) - { -- GTimeVal timeval; -+ gint64 end_time; - -- g_mutex_lock (trash_expunge_lock); -+ g_mutex_lock (&trash_expunge_lock); - - do - { -@@ -80,23 +80,22 @@ trash_expunge_thread (gpointer data) - just_return_true, NULL); - g_hash_table_remove (trash_expunge_queue, directory); - -- g_mutex_unlock (trash_expunge_lock); -+ g_mutex_unlock (&trash_expunge_lock); - trash_expunge_delete_everything_under (directory); -- g_mutex_lock (trash_expunge_lock); -+ g_mutex_lock (&trash_expunge_lock); - - g_object_unref (directory); - } - -- g_get_current_time (&timeval); -- g_time_val_add (&timeval, 60 * 1000000); /* 1min */ -+ end_time = g_get_monotonic_time () + 1 * G_TIME_SPAN_MINUTE; - } -- while (g_cond_timed_wait (trash_expunge_wait, -- trash_expunge_lock, -- &timeval)); -+ while (g_cond_wait_until (&trash_expunge_wait, -+ &trash_expunge_lock, -+ end_time)); - - trash_expunge_alive = FALSE; - -- g_mutex_unlock (trash_expunge_lock); -+ g_mutex_unlock (&trash_expunge_lock); - - return NULL; - } -@@ -108,13 +107,13 @@ trash_expunge (GFile *directory) - { - trash_expunge_queue = g_hash_table_new (g_file_hash, - (GEqualFunc) g_file_equal); -- trash_expunge_lock = g_mutex_new (); -- trash_expunge_wait = g_cond_new (); -+ g_mutex_init (&trash_expunge_lock); -+ g_cond_init (&trash_expunge_wait); - - g_once_init_leave (&trash_expunge_initialised, 1); - } - -- g_mutex_lock (trash_expunge_lock); -+ g_mutex_lock (&trash_expunge_lock); - - if (!g_hash_table_lookup (trash_expunge_queue, directory)) - g_hash_table_insert (trash_expunge_queue, -@@ -130,7 +129,7 @@ trash_expunge (GFile *directory) - trash_expunge_alive = TRUE; - } - else -- g_cond_signal (trash_expunge_wait); -+ g_cond_signal (&trash_expunge_wait); - -- g_mutex_unlock (trash_expunge_lock); -+ g_mutex_unlock (&trash_expunge_lock); - } -diff --git a/daemon/trashlib/trashitem.c b/daemon/trashlib/trashitem.c -index bcfc301..dbc9307 100644 ---- a/daemon/trashlib/trashitem.c -+++ b/daemon/trashlib/trashitem.c -@@ -20,7 +20,7 @@ typedef struct - - struct OPAQUE_TYPE__TrashRoot - { -- GStaticRWLock lock; -+ GRWLock lock; - GQueue *notifications; - - trash_item_notify create_notify; -@@ -297,12 +297,12 @@ trash_root_thaw (TrashRoot *root) - /* send notifications until we have none */ - while (TRUE) - { -- g_static_rw_lock_writer_lock (&root->lock); -+ g_rw_lock_writer_lock (&root->lock); - if (g_queue_is_empty (root->notifications)) - break; - - closure = g_queue_pop_head (root->notifications); -- g_static_rw_lock_writer_unlock (&root->lock); -+ g_rw_lock_writer_unlock (&root->lock); - - trash_item_invoke_closure (closure); - } -@@ -312,7 +312,7 @@ trash_root_thaw (TrashRoot *root) - size_changed = root->old_size != size; - root->old_size = size; - -- g_static_rw_lock_writer_unlock (&root->lock); -+ g_rw_lock_writer_unlock (&root->lock); - - if (size_changed) - root->size_change (root->user_data); -@@ -336,7 +336,7 @@ trash_root_new (trash_item_notify create, - TrashRoot *root; - - root = g_slice_new (TrashRoot); -- g_static_rw_lock_init (&root->lock); -+ g_rw_lock_init (&root->lock); - root->create_notify = create; - root->delete_notify = delete; - root->size_change = size_change; -@@ -376,11 +376,11 @@ trash_root_add_item (TrashRoot *list, - - item = trash_item_new (list, file, in_homedir); - -- g_static_rw_lock_writer_lock (&list->lock); -+ g_rw_lock_writer_lock (&list->lock); - - if (g_hash_table_lookup (list->item_table, item->escaped_name)) - { -- g_static_rw_lock_writer_unlock (&list->lock); -+ g_rw_lock_writer_unlock (&list->lock); - - /* already exists... */ - trash_item_unref (item); -@@ -390,7 +390,7 @@ trash_root_add_item (TrashRoot *list, - g_hash_table_insert (list->item_table, item->escaped_name, item); - trash_item_queue_notify (item, item->root->create_notify); - -- g_static_rw_lock_writer_unlock (&list->lock); -+ g_rw_lock_writer_unlock (&list->lock); - } - - void -@@ -402,9 +402,9 @@ trash_root_remove_item (TrashRoot *list, - - escaped = trash_item_escape_name (file, in_homedir); - -- g_static_rw_lock_writer_lock (&list->lock); -+ g_rw_lock_writer_lock (&list->lock); - g_hash_table_remove (list->item_table, escaped); -- g_static_rw_lock_writer_unlock (&list->lock); -+ g_rw_lock_writer_unlock (&list->lock); - - g_free (escaped); - } -@@ -414,13 +414,13 @@ trash_root_get_items (TrashRoot *root) - { - GList *items, *node; - -- g_static_rw_lock_reader_lock (&root->lock); -+ g_rw_lock_reader_lock (&root->lock); - - items = g_hash_table_get_values (root->item_table); - for (node = items; node; node = node->next) - trash_item_ref (node->data); - -- g_static_rw_lock_reader_unlock (&root->lock); -+ g_rw_lock_reader_unlock (&root->lock); - - return items; - } -@@ -441,12 +441,12 @@ trash_root_lookup_item (TrashRoot *root, - { - TrashItem *item; - -- g_static_rw_lock_reader_lock (&root->lock); -+ g_rw_lock_reader_lock (&root->lock); - - if ((item = g_hash_table_lookup (root->item_table, escaped))) - trash_item_ref (item); - -- g_static_rw_lock_reader_unlock (&root->lock); -+ g_rw_lock_reader_unlock (&root->lock); - - return item; - } -@@ -456,9 +456,9 @@ trash_root_get_n_items (TrashRoot *root) - { - int size; - -- g_static_rw_lock_reader_lock (&root->lock); -+ g_rw_lock_reader_lock (&root->lock); - size = g_hash_table_size (root->item_table); -- g_static_rw_lock_reader_unlock (&root->lock); -+ g_rw_lock_reader_unlock (&root->lock); - - return size; - } -@@ -517,9 +517,9 @@ trash_item_restore (TrashItem *item, - G_FILE_COPY_NO_FALLBACK_FOR_MOVE, - NULL, NULL, NULL, error)) - { -- g_static_rw_lock_writer_lock (&item->root->lock); -+ g_rw_lock_writer_lock (&item->root->lock); - g_hash_table_remove (item->root->item_table, item->escaped_name); -- g_static_rw_lock_writer_unlock (&item->root->lock); -+ g_rw_lock_writer_unlock (&item->root->lock); - - { - GFile *trashinfo; --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gvfs/files/0004-Adapt-to-glib-thread-API-changes.patch b/meta-gnome/recipes-gnome/gvfs/files/0004-Adapt-to-glib-thread-API-changes.patch deleted file mode 100644 index 0fac601558..0000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0004-Adapt-to-glib-thread-API-changes.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 008031adbe2fd118a4e9a3c7219a9777cab1bb75 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek <tbzatek@redhat.com> -Date: Wed, 26 Oct 2011 14:12:13 +0200 -Subject: [PATCH 2/2] Adapt to glib thread API changes - -Last piece in order to fix https://bugzilla.gnome.org/show_bug.cgi?id=661148 - -Upstream-Status: Backport - -Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> ---- - client/gvfsfusedaemon.c | 2 +- - daemon/trashlib/trashexpunge.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/client/gvfsfusedaemon.c b/client/gvfsfusedaemon.c -index c986f69..5e79638 100644 ---- a/client/gvfsfusedaemon.c -+++ b/client/gvfsfusedaemon.c -@@ -2358,7 +2358,7 @@ vfs_init (struct fuse_conn_info *conn) - volume_monitor = g_object_new (g_type_from_name ("GDaemonVolumeMonitor"), NULL); - - subthread_main_loop = g_main_loop_new (NULL, FALSE); -- subthread = g_thread_create ((GThreadFunc) subthread_main, NULL, FALSE, NULL); -+ subthread = g_thread_new ("gvfs-fuse-sub", (GThreadFunc) subthread_main, NULL); - - /* Indicate O_TRUNC support for open() */ - conn->want |= FUSE_CAP_ATOMIC_O_TRUNC; -diff --git a/daemon/trashlib/trashexpunge.c b/daemon/trashlib/trashexpunge.c -index a5cf975..677fb81 100644 ---- a/daemon/trashlib/trashexpunge.c -+++ b/daemon/trashlib/trashexpunge.c -@@ -124,7 +124,7 @@ trash_expunge (GFile *directory) - { - GThread *thread; - -- thread = g_thread_create (trash_expunge_thread, NULL, FALSE, NULL); -+ thread = g_thread_new ("trash-expunge", trash_expunge_thread, NULL); - g_assert (thread != NULL); - trash_expunge_alive = TRUE; - } --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gvfs/files/0005-client-gdaemonfile.c-replace-g_memmove-by-memmove.patch b/meta-gnome/recipes-gnome/gvfs/files/0005-client-gdaemonfile.c-replace-g_memmove-by-memmove.patch deleted file mode 100644 index c55a99db4f..0000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0005-client-gdaemonfile.c-replace-g_memmove-by-memmove.patch +++ /dev/null @@ -1,36 +0,0 @@ -From de7b06dea740900fa63e2e011c9f862fe4b9405c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> -Date: Mon, 27 Oct 2014 10:43:40 +0100 -Subject: [PATCH] client/gdaemonfile.c: replace g_memmove by memmove -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -g_memmove was deprecated in glib 2.40 [1] - -Upstream-Status: pending [2] - -[1] https://developer.gnome.org/glib/stable/glib-Memory-Allocation.html#g-memmove -[2] https://bugzilla.gnome.org/show_bug.cgi?id=739233 - -Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> ---- - client/gdaemonfile.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/client/gdaemonfile.c b/client/gdaemonfile.c -index 15c368c..593ce7a 100644 ---- a/client/gdaemonfile.c -+++ b/client/gdaemonfile.c -@@ -256,7 +256,7 @@ g_daemon_file_get_parent (GFile *file) - len = (guint) 1 + base - path; - - parent_path = g_new (gchar, len + 1); -- g_memmove (parent_path, path, len); -+ memmove (parent_path, path, len); - parent_path[len] = 0; - - parent = new_file_for_new_path (daemon_file, parent_path); --- -1.8.3.1 - diff --git a/meta-gnome/recipes-gnome/gvfs/files/gphoto_build_with_libgphoto_2.5_API.patch b/meta-gnome/recipes-gnome/gvfs/files/gphoto_build_with_libgphoto_2.5_API.patch deleted file mode 100644 index 25d44b0e92..0000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/gphoto_build_with_libgphoto_2.5_API.patch +++ /dev/null @@ -1,78 +0,0 @@ -Upstream-Status: Backport -https://git.gnome.org/browse/gvfs/commit/daemon/gvfsbackendgphoto2.c?id=259a09183f7c96b5fb0f6453bb4b0bcf92e3eaa2 - -Signed-off-by: Max Krummenacher <max.oss.09 at gmail.com> - -From 259a09183f7c96b5fb0f6453bb4b0bcf92e3eaa2 Mon Sep 17 00:00:00 2001 -From: Cosimo Cecchi <cosimoc@gnome.org> -Date: Wed, 8 Aug 2012 13:14:19 +0200 -Subject: gphoto: build with libgphoto 2.5 API - -Patch taken from the Fedora package -Author: Jindrich Novy <jnovy@redhat.com> - -http://pkgs.fedoraproject.org/cgit/gvfs.git/commit/?id=cd0c6218df85bf3de101402c1aa9d79aae7c3019 - -diff --git a/configure.ac b/configure.ac -index 3215694..3280666 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -436,6 +436,9 @@ if test "x$enable_gphoto2" != "xno" -a \( "x$msg_hal" = "xyes" -o "x$msg_gudev" - if test "x$msg_gphoto2" = "xyes"; then - if test "x$use_gphoto2" = "xyes"; then - AC_DEFINE(HAVE_GPHOTO2, 1, [Define to 1 if gphoto2 is available]) -+ PKG_CHECK_MODULES(GPHOTO2, libgphoto2 >= 2.5.0, -+ AC_DEFINE(HAVE_GPHOTO25, 1, [Define to 1 if libgphoto2 2.5 is available]) -+ ) - else - if test "x$enable_gphoto2" = "xyes"; then - AC_MSG_ERROR([Cannot build with gphoto2 support. Need OS tweaks in hal volume monitor.]) -diff --git a/daemon/gvfsbackendgphoto2.c b/daemon/gvfsbackendgphoto2.c -index 0d2c594..75b4b02 100644 ---- a/daemon/gvfsbackendgphoto2.c -+++ b/daemon/gvfsbackendgphoto2.c -@@ -1647,7 +1647,9 @@ do_mount (GVfsBackend *backend, - return; - } - -+#ifndef HAVE_GPHOTO25 - DEBUG (" '%s' '%s' '%s'", info.name, info.path, info.library_filename); -+#endif - - /* set port */ - rc = gp_camera_set_port_info (gphoto2_backend->camera, info); -@@ -2590,7 +2592,11 @@ do_slow_file_rename_in_same_dir (GVfsBackendGphoto2 *gphoto2_backend, - } - } - -+#ifdef HAVE_GPHOTO25 -+ rc = gp_camera_folder_put_file (gphoto2_backend->camera, dir, new_name, GP_FILE_TYPE_NORMAL, file_dest, gphoto2_backend->context); -+#else - rc = gp_camera_folder_put_file (gphoto2_backend->camera, dir, file_dest, gphoto2_backend->context); -+#endif - if (rc != 0) - goto out; - -@@ -3222,14 +3228,18 @@ commit_write_handle (GVfsBackendGphoto2 *gphoto2_backend, WriteHandle *write_han - if (rc != 0) - goto out; - -- gp_file_set_type (file, GP_FILE_TYPE_NORMAL); - gp_file_set_name (file, write_handle->name); - gp_file_set_mtime (file, time (NULL)); - gp_file_set_data_and_size (file, - dup_for_gphoto2 (write_handle->data, write_handle->size), - write_handle->size); - -+#ifdef HAVE_GPHOTO25 -+ rc = gp_camera_folder_put_file (gphoto2_backend->camera, write_handle->dir, write_handle->name, GP_FILE_TYPE_NORMAL, file, gphoto2_backend->context); -+#else -+ gp_file_set_type (file, GP_FILE_TYPE_NORMAL); - rc = gp_camera_folder_put_file (gphoto2_backend->camera, write_handle->dir, file, gphoto2_backend->context); -+#endif - if (rc != 0) - { - gp_file_unref (file); --- -cgit v0.10.2 - diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs-gdu-volume-monitor_1.10.1.bb b/meta-gnome/recipes-gnome/gvfs/gvfs-gdu-volume-monitor_1.10.1.bb deleted file mode 100644 index 5c0e07c0ca..0000000000 --- a/meta-gnome/recipes-gnome/gvfs/gvfs-gdu-volume-monitor_1.10.1.bb +++ /dev/null @@ -1,28 +0,0 @@ -require gvfs.inc - -BPN = "gvfs" - -DEPENDS = "gvfs gnome-disk-utility libgnome-keyring intltool-native" -PR = "${INC_PR}.0" - -# we need gdu files only: reduce files to delete in libexecdir -EXTRA_OECONF += "--disable-gphoto2 \ - --disable-afc \ - --disable-samba" - -do_install_append() { - rm -rf ${D}${sysconfdir} - rm -rf ${D}${bindir} - rm -rf ${D}${includedir} - rm -rf ${D}${libdir}/gio - rm -rf ${D}${libdir}/lib* - rmdir --ignore-fail-on-non-empty ${D}${libdir} - rm -rf ${D}${datadir}/gvfs/mounts - rm -rf ${D}${datadir}/glib-2.0 - rm -rf ${D}${datadir}/GConf - rm -f ${D}${datadir}/dbus-1/services/gvfs-* - rm -rf ${D}${datadir}/locale - rm -f ${D}${libexecdir}/gvfsd* - rm -f ${D}${libexecdir}/gvfs-fuse-daemon - rm -f ${D}${libexecdir}/gvfs-gphoto2-volume-monitor -} diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs.inc b/meta-gnome/recipes-gnome/gvfs/gvfs.inc deleted file mode 100644 index f9798e9d3e..0000000000 --- a/meta-gnome/recipes-gnome/gvfs/gvfs.inc +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION = "gvfs is a userspace virtual filesystem" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" - -inherit gnome - -INC_PR = "r0" - -GNOME_COMPRESS_TYPE = "xz" - -SRC_URI[archive.md5sum] = "0c968704be003d2f6eab29388c41664e" -SRC_URI[archive.sha256sum] = "cd30facee5ad6cd0fafc5337bbf7c06a0bff3936f9ff2ae31519b301efcc9288" -SRC_URI += " \ - file://0001-Revert-Respect-UDISKS_AUTOMOUNT_HINT-available-in-re.patch \ - file://0002-Adapt-to-GLib-2.31-deprecations-and-thread-API-chang.patch \ - file://0003-Adapt-to-glib-mutex-API-changes.patch \ - file://0004-Adapt-to-glib-thread-API-changes.patch \ - file://0005-client-gdaemonfile.c-replace-g_memmove-by-memmove.patch \ - file://gphoto_build_with_libgphoto_2.5_API.patch \ -" - -EXTRA_OECONF = "--with-archive-includes=${STAGING_INCDIR} \ - --with-archive-libs=${STAGING_LIBDIR} \ -" - -FILES_${PN} += "${datadir}/dbus-1/services/*" - diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs_1.10.1.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.10.1.bb deleted file mode 100644 index fb5185fff5..0000000000 --- a/meta-gnome/recipes-gnome/gvfs/gvfs_1.10.1.bb +++ /dev/null @@ -1,35 +0,0 @@ -require gvfs.inc - -DEPENDS = "libsoup-2.4 libgnome-keyring glib-2.0 avahi gconf intltool-native libgudev" -# optional: obexftp libimobiledevice - -PR = "${INC_PR}.0" - -# in case of gnome-disk-utility was alresdy built: avoid double files -# afc is enabled when it detects libimobiledevice -EXTRA_OECONF += "--disable-gdu --disable-afc" - -PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash" - -FILES_${PN} += "${datadir}/glib-2.0 ${datadir}/GConf ${libdir}/gio/modules/*.so" -FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/*" -FILES_${PN}-dev += "${libdir}/gio/modules/*.la" - -FILES_gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount" -FILES_gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount" -FILES_gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount" - -RDEPENDS_${PN} = "gvfs-gdu-volume-monitor" -RRECOMMENDS_gvfsd-ftp += "openssh-sftp openssh-ssh" - -PACKAGECONFIG ?= "libgphoto2" - -PACKAGECONFIG[libgphoto2] = "--enable-gphoto2, --disable-gphoto2, libgphoto2" -PACKAGECONFIG[samba] = "--enable-samba --with-samba-includes=${STAGING_INCDIR} \ - --with-samba-libs=${STAGING_LIBDIR}, --disable-samba, samba" -# needs meta-filesystems -PACKAGECONFIG[fuse] = "--enable-fuse, --disable-fuse, fuse" -PACKAGECONFIG[archive] = "--enable-archive, --disable-archive, libarchive" -PACKAGECONFIG[obexftp] = "--enable-obexftp, --disable-obexftp, bluez4 expat" -# libcdio-paranoia recipe doesn't exist yet -PACKAGECONFIG[cdda] = "--enable-cdda, --disable-cdda, libcdio-paranoia" diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs_1.24.2.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.24.2.bb new file mode 100644 index 0000000000..080fd86327 --- /dev/null +++ b/meta-gnome/recipes-gnome/gvfs/gvfs_1.24.2.bb @@ -0,0 +1,61 @@ +DESCRIPTION = "gvfs is a userspace virtual filesystem" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e" + +inherit gnome + +DEPENDS += "libsecret glib-2.0 gconf intltool-native libgudev udisks2" + +SRC_URI[archive.md5sum] = "83ed317eb2a5264715d4273e90a5cfd8" +SRC_URI[archive.sha256sum] = "0949eaedd1df7175f8d7ee2700df8210d1f854b8ee37d963bc32ee7091eeb228" +SRC_URI += " \ + file://0001-Add-support-for-libsystemd.patch \ +" + +EXTRA_OECONF = " \ + --disable-gdu \ + --enable-udisks2 \ + --with-archive-includes=${STAGING_INCDIR} \ + --with-archive-libs=${STAGING_LIBDIR} \ +" + +PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash" + +FILES_${PN} += " \ + ${datadir}/glib-2.0 \ + ${datadir}/GConf \ + ${datadir}/dbus-1/services \ + ${libdir}/gio/modules/*.so \ + ${libdir}/tmpfiles.d \ +" +RDEPENDS_${PN} = "udisks2" + +FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/*" +FILES_${PN}-dev += "${libdir}/gio/modules/*.la" + +FILES_gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount" +FILES_gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount" +FILES_gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount" + +RRECOMMENDS_gvfsd-ftp += "openssh-sftp openssh-ssh" + +PACKAGES += "${PN}-bash-completion" +FILES_${PN}-bash-completion = "${datadir}/bash-completion" +RDEPENDS_${PN}-bash-completion = "bash-completion" + +PACKAGECONFIG ?= "libgphoto2" + +PACKAGECONFIG[afc] = "--enable-afc, --disable-afc, libimobiledevice libplist" +PACKAGECONFIG[archive] = "--enable-archive, --disable-archive, libarchive" +PACKAGECONFIG[avahi] = "--enable-avahi, --disable-avahi, avahi" +PACKAGECONFIG[gtk] = "--enable-gtk, --disable-gtk, gtk+3" +PACKAGECONFIG[http] = "--enable-http, --disable-http, libsoup-2.4" +PACKAGECONFIG[libmtp] = "--enable-libmtp, --disable-libmtp, libmtp" +PACKAGECONFIG[libgphoto2] = "--enable-gphoto2, --disable-gphoto2, libgphoto2" +PACKAGECONFIG[samba] = "--enable-samba, --disable-samba, samba" + +# needs meta-filesystems +PACKAGECONFIG[fuse] = "--enable-fuse, --disable-fuse, fuse" + +# libcdio-paranoia recipe doesn't exist yet +PACKAGECONFIG[cdda] = "--enable-cdda, --disable-cdda, libcdio-paranoia" |