From 4194124719341d2d4ad1735b57da30879946b646 Mon Sep 17 00:00:00 2001 From: Stefan Reiter Date: Wed, 24 Feb 2021 14:34:47 +0100 Subject: [PATCH] pbs-restore: unref/close target block backend Use blk_unref to drop the last reference, which will close the block backend and flush all caches and outstanding writes. This is especially important for restoring to Ceph, as the userspace librbd caches will not be flushed if the application exits immediately, leading to potentially incomplete restores. Reported-by: Eneko Lacunza Signed-off-by: Stefan Reiter --- ...ackup-pbs-restore-new-command-to-restore-from-p.patch | 9 +++++---- debian/patches/pve/0039-PVE-fixup-pbs-restore-API.patch | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/debian/patches/pve/0029-PVE-Backup-pbs-restore-new-command-to-restore-from-p.patch b/debian/patches/pve/0029-PVE-Backup-pbs-restore-new-command-to-restore-from-p.patch index d7b0f39..2b04e1f 100644 --- a/debian/patches/pve/0029-PVE-Backup-pbs-restore-new-command-to-restore-from-p.patch +++ b/debian/patches/pve/0029-PVE-Backup-pbs-restore-new-command-to-restore-from-p.patch @@ -7,8 +7,8 @@ Subject: [PATCH] PVE-Backup: pbs-restore - new command to restore from proxmox Signed-off-by: Thomas Lamprecht --- meson.build | 4 + - pbs-restore.c | 217 ++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 221 insertions(+) + pbs-restore.c | 218 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 222 insertions(+) create mode 100644 pbs-restore.c diff --git a/meson.build b/meson.build @@ -28,10 +28,10 @@ index 3094f98c47..6f1fafee14 100644 subdir('contrib/elf2dmp') diff --git a/pbs-restore.c b/pbs-restore.c new file mode 100644 -index 0000000000..4bf37ef1fa +index 0000000000..d4daee7e91 --- /dev/null +++ b/pbs-restore.c -@@ -0,0 +1,217 @@ +@@ -0,0 +1,218 @@ +/* + * Qemu image restore helper for Proxmox Backup + * @@ -241,6 +241,7 @@ index 0000000000..4bf37ef1fa + verbose); + + proxmox_restore_disconnect(conn); ++ blk_unref(blk); + + if (res < 0) { + fprintf(stderr, "restore failed: %s\n", pbs_error); diff --git a/debian/patches/pve/0039-PVE-fixup-pbs-restore-API.patch b/debian/patches/pve/0039-PVE-fixup-pbs-restore-API.patch index c5199e0..cc8f30a 100644 --- a/debian/patches/pve/0039-PVE-fixup-pbs-restore-API.patch +++ b/debian/patches/pve/0039-PVE-fixup-pbs-restore-API.patch @@ -9,7 +9,7 @@ Signed-off-by: Stefan Reiter 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pbs-restore.c b/pbs-restore.c -index 4bf37ef1fa..ff3fc38e8a 100644 +index d4daee7e91..4d3f925a1b 100644 --- a/pbs-restore.c +++ b/pbs-restore.c @@ -161,13 +161,19 @@ int main(int argc, char **argv)