block/copy-before-write: add on-cbw-error open parameter
commitf1bb39a8a5b6d486faa1a51a7f28c577155642c9
authorVladimir Sementsov-Ogievskiy <vsementsov@openvz.org>
Thu, 7 Apr 2022 13:27:21 +0000 (7 16:27 +0300)
committerVladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Tue, 28 Jun 2022 07:20:31 +0000 (28 10:20 +0300)
treede0305a84f22213bbff56777df2038c5270dece3
parent79ef0cebb5694411e7452f0cf15c4bd170c7f2d6
block/copy-before-write: add on-cbw-error open parameter

Currently, behavior on copy-before-write operation failure is simple:
report error to the guest.

Let's implement alternative behavior: break the whole copy-before-write
process (and corresponding backup job or NBD client) but keep guest
working. It's needed if we consider guest stability as more important.

The realisation is simple: on copy-before-write failure we set
s->snapshot_ret and continue guest operations. s->snapshot_ret being
set will lead to all further snapshot API requests. Note that all
in-flight snapshot-API requests may still success: we do wait for them
on BREAK_SNAPSHOT-failure path in cbw_do_copy_before_write().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@openvz.org>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
block/copy-before-write.c
qapi/block-core.json