summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoss Lagerwall <rosslagerwall@gmail.com>2015-09-05 13:39:17 +0100
committerOndrej Holy <oholy@redhat.com>2015-09-23 10:09:53 +0200
commite1a3c297aa38c86b19705a03555d322eaa944ff7 (patch)
treee5d76d29c547e2ebc9ce1552d4c089fcbd08c046
parent46487b40479c0a422a2a5061bfa8da138a4dc107 (diff)
downloadgvfs-e1a3c297aa38c86b19705a03555d322eaa944ff7.tar.gz
sftp: Don't call g_vfs_backend_force_unmount multiple times
If the remote connection(s) are closed (e.g. the remote host is rebooted), ensure that g_vfs_backend_force_unmount is only called once. This avoids a warning like the following: forced_unregister_mount_callback forced_unregister_mount_callback ** (process:12472): WARNING **: Error unregistering mount: Mountpoint not registered (g-io-error-quark, 16) Additionally, remove some backend member variables. https://bugzilla.gnome.org/show_bug.cgi?id=753311
-rw-r--r--daemon/gvfsbackendsftp.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/daemon/gvfsbackendsftp.c b/daemon/gvfsbackendsftp.c
index ae0c363f..c301dc99 100644
--- a/daemon/gvfsbackendsftp.c
+++ b/daemon/gvfsbackendsftp.c
@@ -205,9 +205,7 @@ struct _GVfsBackendSftp
Connection command_connection;
Connection data_connection;
- GMountSource *mount_source; /* Only used/set during mount */
- int mount_try;
- gboolean mount_try_again;
+ gboolean force_unmounted;
};
static void parse_attributes (GVfsBackendSftp *backend,
@@ -1330,6 +1328,11 @@ fail_jobs (Connection *conn, GError *error)
static void
fail_jobs_and_unmount (GVfsBackendSftp *backend, GError *error)
{
+ if (backend->force_unmounted)
+ return;
+
+ backend->force_unmounted = TRUE;
+
fail_jobs (&backend->command_connection, error);
fail_jobs (&backend->data_connection, error);