summaryrefslogtreecommitdiff
path: root/daemon/gvfsjobunmount.c
AgeCommit message (Collapse)AuthorFilesLines
2012-07-31gdbus: Remove debug printsTomas Bzatek1-2/+0
2012-07-31gdbus: Silence unmount failuresTomas Bzatek1-10/+6
...and fix wrong typecast due to using an object we haven't reff'ed. The failure we're making silent were coming from a failed d-bus call to mount tracker. Also turned out the org.gtk.vfs.MountTracker.unregisterMount() has never been implemented, daemon mounttracker is watching for clients disconnects anyway.
2012-07-31gdbus: Core daemon and client portTomas Bzatek1-58/+49
Port of most of the gvfs core, few bits still missing. Lot of debug prints around, will be removed in further commits. Same amount of TODOs and FIXMEs. Notes: * kill serials? * get rid of mainloops where applicable (copy/move progress callback, enumerator) * fix keyring integration * use gdbus builtin fd passing within gvfsdaemon.c, kill the extra_fd stuff
2012-07-31Spelling correction "filesystem" -> "file system"Felix Möller1-1/+1
Unify the spelling. For the discussion see: https://bugzilla.gnome.org/show_bug.cgi?id=520902 Signed-off-by: Tomas Bzatek <tbzatek@redhat.com>
2012-07-30Update the Address of the FSFFelix Möller1-2/+2
Updating the address of the FSF. This has been done by: while read file; do sed -i 's:59 Temple Place:51 Franklin Street:' $file sed -i 's:Suite 330:Fifth Floor:' $file sed -i 's:02111-1307:02110-1301:' $file done https://bugzilla.gnome.org/show_bug.cgi?id=656598 Signed-off-by: Tomas Bzatek <tbzatek@redhat.com>
2012-07-16daemon: implement show-unmount-progress in GVfsJobUnmountCosimo Cecchi1-0/+58
https://bugzilla.gnome.org/show_bug.cgi?id=676111
2012-02-07GVfsJobUnmount: check that vfunc is implemented before calling itGiovanni Campagna1-1/+6
GVfsBackend::try_unmount is optional (like all the other try_* vfuncs), and in fact many backends don't implement it. In case it's NULL, returing FALSE does the right thing and schedules a thread for calling ->unmount. https://bugzilla.gnome.org/show_bug.cgi?id=669211
2011-09-29daemon: Grab a pointer to the GvfsBackend before unref'ing a job source, ↵Michael Terry1-1/+3
preventing a crash. https://bugzilla.gnome.org/show_bug.cgi?id=654999
2011-06-06daemon: Implement auto-busy on unmountChristian Kellner1-16/+90
Add generic logic to GVfsJobUnmount to automatically return G_IO_ERROR_BUSY when there are active connections _and_ the user decided to not force and unmount. Fixes bug 509606.
2011-04-15Don't leak dbus messagesAlexander Larsson1-0/+1
We're missing a lot of dbus_message_unref after sending messages, add them.
2010-05-27Rename gdbusutils.h to avoid conflict with GIOMatthias Clasen1-1/+1
This makes gvfs build with recent glib again, see bug #619537
2009-07-08Bug 587484 – Interaction when unmounting mounts and misc fixesDavid Zeuthen1-2/+39
- Port everything to use _with_operation() variants of unmount/eject methods - Add support for g_file_poll_mountable() - new job class: GVfsJobPollMountable - Pass mount operation for unmount/eject ops on GDaemonFile and GDaemonMount - receive in the appropriate GVfsJob classes - also pass unmount flags where it was missing - port all backends to use this - Teach GMountSource and GMountOperationDBus about the new GMountOperation::show-processes signal - also provide new API - g_mount_source_is_dummy() - e.g. when the client didn't passed NULL for the GMountOperation - g_mount_source_abort() - to send the ::abort signal to the client-side GMountOperation - make the client-side of GMountSource return ::reply with NOT_HANDLED when we do an abort - Refactor the mount operation handling in GProxyVolumeMonitor - Pass mount operation for unmount/ejects in GProxyVolumeMonitor - Pass the process id of the actual reader/writer in OpenForRead and OpenForWrite daemon methods - add some private API for making the FUSE client set the pid of the POSIX client (otherwise it looks like the FUSE client is blocking) and pass the right pid. This is because the FUSE client is basically impersonating the POSIX processes. - Make the process id mentioned above available in appropriate GVfsJob classes - GVfsJobOpenForRead - GVfsJobOpenForWrite - GVfsChannel - Provide API to get a list of all blocking clients, e.g. an array of GPid - g_vfs_daemon_get_blocking_processes() - Provide convenience API to easily doing the right thing on unmount; e.g. interact with the user about blocking processes - see the gphoto2 backend for example usage - g_vfs_backend_has_blocking_processes() - g_vfs_backend_unmount_with_operation() and g_vfs_backend_unmount_with_operation_finish() - Only the gphoto2 backend supports ::show-processes right now. Support for other backends will be added shortly. - Implement support for ::show-processes in the GDU volume monitor - right now we don't support "Unmount Anyway" since it requires ABI changes in libgdu.so - this will be changed as soon as there's a new gnome-disk-utility release
2009-03-06Convert all spew to g_debug()Alexander Larsson1-3/+3
2009-03-06 Alexander Larsson <alexl@redhat.com> * daemon/daemon-main.c: * daemon/gvfsbackend.c: * daemon/gvfsbackendburn.c: * daemon/gvfsbackenddav.c: * daemon/gvfsbackendhttp.c: * daemon/gvfsbackendobexftp.c: * daemon/gvfsbackendtrash.c: * daemon/gvfsdaemon.c: * daemon/gvfsjobcloseread.c: * daemon/gvfsjobclosewrite.c: * daemon/gvfsjobcopy.c: * daemon/gvfsjobdbus.c: * daemon/gvfsjobenumerate.c: * daemon/gvfsjobmount.c: * daemon/gvfsjobmove.c: * daemon/gvfsjobpull.c: * daemon/gvfsjobpush.c: * daemon/gvfsjobread.c: * daemon/gvfsjobseekread.c: * daemon/gvfsjobseekwrite.c: * daemon/gvfsjobunmount.c: * daemon/gvfsjobwrite.c: * daemon/mount.c: Convert all spew to g_debug() svn path=/trunk/; revision=2297
2008-02-19Code cleanup from Kjartan: Removes unused code/variables. Uses rightAlexander Larsson1-5/+1
2008-02-19 Alexander Larsson <alexl@redhat.com> * lots of *.c files: Code cleanup from Kjartan: Removes unused code/variables. Uses right printf types Uses non-deprecated dbus calls. Removes spurious ; and , deleted extra checks for NULL for g_free svn path=/trunk/; revision=1302
2008-01-11Implement unmount_mountable and eject_mountable on client side.Alexander Larsson1-8/+10
2008-01-11 Alexander Larsson <alexl@redhat.com> * client/gdaemonfile.c: * common/gvfsdaemonprotocol.h: Implement unmount_mountable and eject_mountable on client side. * common/gmountoperationdbus.c: Fix warnings * daemon/gvfsbackend.[ch]: * daemon/gvfsjobunmountmountable.[ch]: Add unmount_mountable and eject_mountable in daemon. * daemon/gvfsbackendcomputer.c: Implement unmount_mountable and eject_mountable * daemon/gvfsbackendlocaltest.c: Update to latest API * daemon/gvfsbackendsftp.c: Fix indentation * daemon/gvfsjobunmount.c: Always allow unmount if unmount is not implemented. svn path=/trunk/; revision=1093
2007-12-19Add the cdda:// backend for Compact Disc Digital Audio discs.David Zeuthen1-5/+10
2007-12-19 David Zeuthen <davidz@redhat.com> Add the cdda:// backend for Compact Disc Digital Audio discs. Allow a backend to specify the fuse name directly instead of using the display name Make GDaemonVolumeMonitor and GDaemonMount use the new adopt_orphan_mount() function on GVolumeMonitor in gio. Also, since a GMount now can be associated with a GVolume, implement eject(). Add a new gvfs-less program. Make gvfs-mount capable of unmounting as well. HAL backend changes: attempt to unmount all mounts from enclosing volumes and fail the ejection if one of the unmount operations fails. Use new adopt_orphan_mount() from gio to adopt cdda:// volumes for audio discs. Emit the 'eject-button' signal on GDrive. Various other fixes. * client/gdaemonfile.c: (g_daemon_file_find_enclosing_mount): * client/gdaemonmount.c: (g_daemon_mount_finalize), (g_daemon_mount_new), (g_daemon_mount_get_volume), (g_daemon_mount_get_drive), (g_daemon_mount_can_eject), (foreign_volume_removed), (g_daemon_mount_set_foreign_volume), (eject_wrapper_callback), (g_daemon_mount_eject), (g_daemon_mount_eject_finish), (g_daemon_mount_mount_iface_init): * client/gdaemonmount.h: * client/gdaemonvolumemonitor.c: (mount_added), (mount_removed), (g_daemon_volume_monitor_init): * client/gvfsfusedaemon.c: (file_handle_close_stream), (free_file_handle_for_path), (mount_record_new): * common/gmounttracker.c: (g_mount_info_dup), (g_mount_info_unref), (g_mount_info_from_dbus): * common/gmounttracker.h: * configure.ac: * daemon/Makefile.am: * daemon/gvfsbackend.c: (g_vfs_backend_finalize), (g_vfs_backend_init), (g_vfs_backend_set_fuse_name), (g_vfs_backend_get_fuse_name), (g_vfs_backend_register_mount): * daemon/gvfsbackend.h: * daemon/gvfsjobunmount.c: (unregister_mount_callback), (send_reply): * daemon/mount.c: (vfs_mount_free), (vfs_mount_to_dbus), (register_mount), (list_mounts): * hal/ghaldrive.c: (g_hal_drive_finalize), (hal_condition), (g_hal_drive_new), (spawn_cb), (g_hal_drive_eject_do), (free_unmount_mounts_op), (_eject_unmount_mounts_cb), (_eject_unmount_mounts), (g_hal_drive_eject): * hal/ghalmount.c: (g_hal_mount_finalize), (unmount_cb), (unmount_read_error), (unmount_do), (g_hal_mount_unmount), (eject_wrapper_callback), (g_hal_mount_eject), (g_hal_mount_eject_finish): * hal/ghalvolume.c: (g_hal_volume_finalize), (do_update_from_hal), (g_hal_volume_new), (g_hal_volume_get_mount), (foreign_mount_unmounted), (g_hal_volume_adopt_foreign_mount), (g_hal_volume_has_foreign_mount_root), (spawn_cb), (mount_foreign_callback), (g_hal_volume_mount), (g_hal_volume_mount_finish), (eject_wrapper_callback), (g_hal_volume_eject), (g_hal_volume_eject_finish): * hal/ghalvolume.h: * hal/ghalvolumemonitor.c: (adopt_orphan_mount), (g_hal_volume_monitor_class_init), (update_volumes), (update_mounts), (update_discs): * hal/hal-device.c: (hal_device_class_init), (_hal_device_hal_condition): * hal/hal-device.h: * hal/hal-marshal.list: * hal/hal-pool.c: (hal_pool_class_init), (_hal_condition), (hal_pool_new): * hal/hal-pool.h: * programs/Makefile.am: * programs/gvfs-mount.c: (unmount_done_cb), (unmount), (main): svn path=/trunk/; revision=1052
2007-11-14Add unmount operation and unregister mount mounttracker callAlexander Larsson1-0/+166
2007-11-14 Alexander Larsson <alexl@redhat.com> * common/gvfsdaemonprotocol.h: Add unmount operation and unregister mount mounttracker call * client/gdaemonvolume.c: Implement client side of unmount * daemon/Makefile.am: * daemon/gvfsjobunmount.[ch]: Added. Add unmount job type * daemon/gvfsbackend.[ch]: Implement unmount svn path=/trunk/; revision=1025