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



commit 7c856adf3dc29a51bd07464c4b9a00252ad8bb69
Author: Ondrej Holy <oholy redhat com>
Date:   Thu Nov 13 13:38:21 2014 +0100

    dav: 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/gvfsbackenddav.c |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)
---
diff --git a/daemon/gvfsbackenddav.c b/daemon/gvfsbackenddav.c
index 3ace6e1..b0bc22d 100644
--- a/daemon/gvfsbackenddav.c
+++ b/daemon/gvfsbackenddav.c
@@ -2725,10 +2725,23 @@ do_move (GVfsBackend *backend,
 
   if (flags & G_FILE_COPY_BACKUP)
     {
-      g_vfs_job_failed_literal (G_VFS_JOB(job),
-                                G_IO_ERROR,
-                                G_IO_ERROR_CANT_CREATE_BACKUP,
-                                _("Backup file creation failed"));
+      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]