[pve-devel] [PATCH qemu] PVE-Backup: remove dirty-bitmap in pvebackup_complete_cb for failed jobs

Dietmar Maurer dietmar at proxmox.com
Wed Jul 1 14:17:02 CEST 2020


Note: We remove the device from di_list, so pvebackup_co_cleanup does
not handle this case.
---
 pve-backup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/pve-backup.c b/pve-backup.c
index 61a8b4d2a4..1c4f6cf9e0 100644
--- a/pve-backup.c
+++ b/pve-backup.c
@@ -318,6 +318,12 @@ static void pvebackup_complete_cb(void *opaque, int ret)
     // remove self from job queue
     backup_state.di_list = g_list_remove(backup_state.di_list, di);
 
+    if (di->bitmap && ret < 0) {
+        // on error or cancel we cannot ensure synchronization of dirty
+        // bitmaps with backup server, so remove all and do full backup next
+        bdrv_release_dirty_bitmap(di->bitmap);
+    }
+
     g_free(di);
 
     qemu_mutex_unlock(&backup_state.backup_mutex);
-- 
2.20.1




More information about the pve-devel mailing list