diff options
-rw-r--r-- | daemon/gvfsdaemon.c | 6 | ||||
-rw-r--r-- | daemon/gvfsjobunmount.c | 2 |
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 */ |