summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorVladimir Sementsov-Ogievskiy2021-02-05 17:37:11 +0100
committerEric Blake2021-02-12 16:45:18 +0100
commitbd54669a4adf0931be3b0574d07ce4809bf67807 (patch)
tree33a561ed7db50b46253dd372f20781998bcc4ec3 /block
parentio: error_prepend() in qio_channel_readv_full_all() causes segfault (diff)
downloadqemu-bd54669a4adf0931be3b0574d07ce4809bf67807.tar.gz
qemu-bd54669a4adf0931be3b0574d07ce4809bf67807.tar.xz
qemu-bd54669a4adf0931be3b0574d07ce4809bf67807.zip
block: add new BlockDriver handler: bdrv_cancel_in_flight
It will be used to stop retrying NBD requests on mirror cancel. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20210205163720.887197-2-vsementsov@virtuozzo.com> Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'block')
-rw-r--r--block/io.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/block/io.c b/block/io.c
index b0435ed670..ca2dca3007 100644
--- a/block/io.c
+++ b/block/io.c
@@ -3460,3 +3460,14 @@ out:
return ret;
}
+
+void bdrv_cancel_in_flight(BlockDriverState *bs)
+{
+ if (!bs || !bs->drv) {
+ return;
+ }
+
+ if (bs->drv->bdrv_cancel_in_flight) {
+ bs->drv->bdrv_cancel_in_flight(bs);
+ }
+}