]> git.proxmox.com Git - pve-qemu-kvm.git/blobdiff - debian/patches/old/backup-do-not-return-errors-in-dump-callback.patch
refer to the new repository
[pve-qemu-kvm.git] / debian / patches / old / backup-do-not-return-errors-in-dump-callback.patch
diff --git a/debian/patches/old/backup-do-not-return-errors-in-dump-callback.patch b/debian/patches/old/backup-do-not-return-errors-in-dump-callback.patch
deleted file mode 100644 (file)
index d217968..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-The backup dump_cb should always return success. Else the original write
-does not succeed and the VM gets notified. 
-
-We simply report success and cancel the backup job instead.
-
-
-Index: new/blockdev.c
-===================================================================
---- new.orig/blockdev.c        2014-11-20 07:49:05.000000000 +0100
-+++ new/blockdev.c     2014-11-20 07:49:14.000000000 +0100
-@@ -1991,6 +1991,11 @@
- {
-     PVEBackupDevInfo *di = opaque;
-+    int size = n_sectors * BDRV_SECTOR_SIZE;
-+    if (backup_state.cancel) {
-+        return size; // return success
-+    }
-+
-     if (sector_num & 0x7f) {
-         if (!backup_state.error) {
-             error_setg(&backup_state.error,
-@@ -2001,7 +2006,6 @@
-     }
-     int64_t cluster_num = sector_num >> 7;
--    int size = n_sectors * BDRV_SECTOR_SIZE;
-     int ret = -1;
-@@ -2009,17 +2013,27 @@
-         size_t zero_bytes = 0;
-         ret = vma_writer_write(backup_state.vmaw, di->dev_id, cluster_num,
-                                buf, &zero_bytes);
--        backup_state.zero_bytes += zero_bytes;
-+        if (ret < 0) {
-+            if (!backup_state.error) {
-+                error_setg(&backup_state.error, "vma_writer_write error %d", ret);
-+            }
-+            if (di->bs && di->bs->job) {
-+                block_job_cancel(di->bs->job);
-+            }
-+        } else {
-+            backup_state.zero_bytes += zero_bytes;
-+            backup_state.transferred += size;
-+        }
-     } else {
--        ret = size;
-         if (!buf) {
-             backup_state.zero_bytes += size;
-         }
-+        backup_state.transferred += size;
-     }
--    backup_state.transferred += size;
-+    // Note: always return success, because we want that writes succeed anyways.
--    return ret;
-+    return size;
- }
- static void pvebackup_cleanup(void)
-@@ -2091,7 +2105,7 @@
-             BlockJob *job = di->bs->job;
-             if (job) {
-                 if (!di->completed) {
--                    block_job_cancel_sync(job);
-+                     block_job_cancel_sync(job);
-                 }
-             }
-         }