79c4324644
Change-Id: I2d302dda68298877c65c99147f5bf22186a59aac
39 lines
1.6 KiB
Diff
39 lines
1.6 KiB
Diff
From 06db37983cfd20d7e92001ac3cb06867a281f1c9 Mon Sep 17 00:00:00 2001
|
|
From: Jiahui Cen <cenjiahui@huawei.com>
|
|
Date: Thu, 25 Feb 2021 18:03:57 +0800
|
|
Subject: [PATCH 8/9] block-backend: Stop retrying when draining
|
|
|
|
Retrying failed requests when draining would make the draining hung. So it
|
|
is better not to trigger the retry timer when draining. And after the
|
|
virtual devices go back to work, they would retry those queued requests.
|
|
|
|
Signed-off-by: Jiahui Cen <cenjiahui@huawei.com>
|
|
Signed-off-by: Ying Fang <fangying1@huawei.com>
|
|
Signed-off-by: Alex Chen <alex.chen@huawei.com>
|
|
---
|
|
block/block-backend.c | 8 +++++---
|
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/block/block-backend.c b/block/block-backend.c
|
|
index d3d90a95a5..49d236b2a4 100644
|
|
--- a/block/block-backend.c
|
|
+++ b/block/block-backend.c
|
|
@@ -1874,9 +1874,11 @@ void blk_error_action(BlockBackend *blk, BlockErrorAction action,
|
|
send_qmp_error_event(blk, action, is_read, error);
|
|
qemu_system_vmstop_request(RUN_STATE_IO_ERROR);
|
|
} else if (action == BLOCK_ERROR_ACTION_RETRY) {
|
|
- timer_mod(blk->retry_timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME) +
|
|
- blk->retry_interval);
|
|
- send_qmp_error_event(blk, action, is_read, error);
|
|
+ if (!blk->quiesce_counter) {
|
|
+ timer_mod(blk->retry_timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME) +
|
|
+ blk->retry_interval);
|
|
+ send_qmp_error_event(blk, action, is_read, error);
|
|
+ }
|
|
} else {
|
|
send_qmp_error_event(blk, action, is_read, error);
|
|
}
|
|
--
|
|
2.27.0
|
|
|