[gvfs] afc: try copy and delete fallback if backup couldn't be created



commit d4aa8d9e48d08738e14d4855130a0dcad19bd2eb
Author: Ondrej Holy <oholy redhat com>
Date:   Thu Nov 13 13:38:44 2014 +0100

    afc: try copy and delete fallback if backup couldn't be created
    
    Move operation fails immediately with G_IO_ERROR_CANT_CREATE_BACKUP if
    G_FILE_COPY_BACKUP is specified. Consequently copy and delete fallback
    isn't executed. Return NOT_SUPPORTED instead of CANT_CREATE_BACKUP to
    proceed with the fallback if G_FILE_COPY_NO_FALLBACK_FOR_MOVE isn't
    specified.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=740057

 daemon/gvfsbackendafc.c |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)
---
diff --git a/daemon/gvfsbackendafc.c b/daemon/gvfsbackendafc.c
index 3c0b787..7fcb2b0 100644
--- a/daemon/gvfsbackendafc.c
+++ b/daemon/gvfsbackendafc.c
@@ -2572,10 +2572,24 @@ g_vfs_backend_afc_move (GVfsBackend *backend,
   if (flags & G_FILE_COPY_BACKUP)
     {
       /* FIXME: implement! */
-      g_vfs_job_failed (G_VFS_JOB (job),
-                        G_IO_ERROR,
-                        G_IO_ERROR_CANT_CREATE_BACKUP,
-                        _("Backups are not yet supported."));
+
+      if (flags & G_FILE_COPY_NO_FALLBACK_FOR_MOVE)
+        {
+          g_vfs_job_failed_literal (G_VFS_JOB (job),
+                                    G_IO_ERROR,
+                                    G_IO_ERROR_CANT_CREATE_BACKUP,
+                                    _("Backups not supported"));
+        }
+      else
+        {
+          /* Return G_IO_ERROR_NOT_SUPPORTED instead of G_IO_ERROR_CANT_CREATE_BACKUP
+           * to be proceeded with copy and delete fallback (see g_file_move). */
+          g_vfs_job_failed_literal (G_VFS_JOB (job),
+                                    G_IO_ERROR,
+                                    G_IO_ERROR_NOT_SUPPORTED,
+                                    "Operation not supported");
+        }
+
       return;
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]