[pve-devel] applied: [PATCH pve-qemu] pbs-restore: unref/close target block backend
t.lamprecht at proxmox.com
Wed Feb 24 19:56:09 CET 2021
On 24.02.21 14:34, Stefan Reiter wrote:
> 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 <elacunza at binovo.es>
> Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
> I was now able to reproduce the issue on Ceph, and this successfully fixes it
> for me. Hash sums of before and after the restore now match up.
> Without this, the difference in restored images would manifest in the broken one
> simply missing some data at the back, instead just having zeroes there. This
> might also be why it's not too noticeable usually - most data would be stored in
> the earlier parts of the image, which always had enough time to be flushed.
> This also brings it more in line with the code in vma.c, though we do a
> bdrv_close_all there too - I did not find that to be necessary here, as
> blk_unref already closes all attached block driver instances.
> ...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(-)
More information about the pve-devel