From cfc15dc456126a6fb811f0c51af8d8ce5c4a4a1b Mon Sep 17 00:00:00 2001 From: yexiao Date: Thu, 21 Jan 2021 15:46:45 +0800 Subject: [PATCH] qapi/block-core: Add retry option for error action Add a new error action 'retry' to support retry on errors. Signed-off-by: Jiahui Cen Signed-off-by: Ying Fang Signed-off-by: Alex Chen --- blockdev.c | 2 ++ qapi/block-core.json | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/blockdev.c b/blockdev.c index c91f49e7b6..2817f73fad 100644 --- a/blockdev.c +++ b/blockdev.c @@ -326,6 +326,8 @@ static int parse_block_error_action(const char *buf, bool is_read, Error **errp) return BLOCKDEV_ON_ERROR_STOP; } else if (!strcmp(buf, "report")) { return BLOCKDEV_ON_ERROR_REPORT; + } else if (!strcmp(buf, "retry")) { + return BLOCKDEV_ON_ERROR_RETRY; } else { error_setg(errp, "'%s' invalid %s error action", buf, is_read ? "read" : "write"); diff --git a/qapi/block-core.json b/qapi/block-core.json index 1444624590..ded6f0f6d2 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -1286,10 +1286,12 @@ # # @auto: inherit the error handling policy of the backend (since: 2.7) # +# @retry: retrying IO with errors +# # Since: 1.3 ## { 'enum': 'BlockdevOnError', - 'data': ['report', 'ignore', 'enospc', 'stop', 'auto'] } + 'data': ['report', 'ignore', 'enospc', 'stop', 'auto', 'retry'] } ## # @MirrorSyncMode: @@ -5480,10 +5482,12 @@ # # @stop: error caused VM to be stopped # +# @retry: retry IO with errors +# # Since: 2.1 ## { 'enum': 'BlockErrorAction', - 'data': [ 'ignore', 'report', 'stop' ] } + 'data': [ 'ignore', 'report', 'stop', 'retry' ] } ## # @BLOCK_IMAGE_CORRUPTED: -- 2.27.0