summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--daemon/gvfsdaemon.c6
-rw-r--r--daemon/gvfsjobunmount.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c
index 7db8ad2c..c0ac8caf 100644
--- a/daemon/gvfsdaemon.c
+++ b/daemon/gvfsdaemon.c
@@ -1029,11 +1029,13 @@ g_vfs_daemon_run_job_in_thread (GVfsDaemon *daemon,
}
void
-g_vfs_daemon_close_active_channels (GVfsDaemon *daemon)
+g_vfs_daemon_close_active_channels (GVfsDaemon *daemon,
+ GVfsBackend *backend)
{
GList *l;
for (l = daemon->job_sources; l != NULL; l = l->next)
- if (G_VFS_IS_CHANNEL (l->data))
+ if (G_VFS_IS_CHANNEL (l->data) &&
+ g_vfs_channel_get_backend (G_VFS_CHANNEL (l->data)) == backend)
g_vfs_channel_force_close (G_VFS_CHANNEL (l->data));
}
diff --git a/daemon/gvfsjobunmount.c b/daemon/gvfsjobunmount.c
index abf00972..d97f846b 100644
--- a/daemon/gvfsjobunmount.c
+++ b/daemon/gvfsjobunmount.c
@@ -294,9 +294,9 @@ unregister_mount_callback (GVfsDBusMountTracker *proxy,
/* Unlink job source from daemon */
daemon = g_vfs_backend_get_daemon (backend);
+ g_vfs_daemon_close_active_channels (daemon, backend);
g_vfs_job_source_closed (G_VFS_JOB_SOURCE (backend));
- g_vfs_daemon_close_active_channels (daemon);
}
/* Might be called on an i/o thread */