[Devel] [PATCH RHEL10 COMMIT] drivers/vhost/blk: fix uninitialized variable
Konstantin Khorenko
khorenko at virtuozzo.com
Fri Jun 19 19:36:02 MSK 2026
The commit is pushed to "branch-rh10-6.12.0-211.16.1.12.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-211.16.1.12.4.vz10
------>
commit aea0a577cb1e67e9960da77b348b407571bde74f
Author: Andrey Zhadchenko <andrey.zhadchenko at virtuozzo.com>
Date: Fri Jun 19 16:33:07 2026 +0300
drivers/vhost/blk: fix uninitialized variable
Set ret to -EAGAIN. If we can't get backend, this means we are
in the proccess of shutting down or suspending. The request will
be read again from virtqueue some time later.
https://virtuozzo.atlassian.net/browse/VSTOR-134034
Signed-off-by: Andrey Zhadchenko <andrey.zhadchenko at virtuozzo.com>
======
Patchset description:
vhost-blk: handling of failing requests
This series mainly addresses the handling of failing requests.
Previously the driver will always retry all requests failed at
processing and will always complete the requests if they are
past bio submission point.
Using vhost-net and vhost-scsi as a model, we adopt the following
approach:
- requests failed at processing phase with ENOMEM/EAGAIN are re-tried
- requests failed at processing phase with other errors are not
reported completed and are not processed further. It is higly likely
they are just incorrect
- requests failed at status write after the completion are not
reported completed
This may sometime lead to guests stalling, but the alternatives are
always worse.
Also the patchset improves logging and adds a few sanity checks.
Feature: vhost-blk: in-kernel accelerator for virtio-blk guests
Reviewed-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
---
drivers/vhost/blk.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/vhost/blk.c b/drivers/vhost/blk.c
index a3f01d55865a7..e4236df2f2161 100644
--- a/drivers/vhost/blk.c
+++ b/drivers/vhost/blk.c
@@ -406,7 +406,7 @@ static int vhost_blk_req_submit(struct vhost_blk_req *req)
{
struct block_device *bdev;
struct file *f;
- int ret;
+ int ret = -EAGAIN;
note_request(req);
More information about the Devel
mailing list