]>
Commit | Line | Data |
---|---|---|
677d0d16 SR |
1 | From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
2 | From: Stefan Reiter <s.reiter@proxmox.com> | |
3 | Date: Tue, 2 Mar 2021 16:11:54 +0100 | |
4 | Subject: [PATCH] block/io: accept NULL qiov in bdrv_pad_request | |
5 | ||
6 | Some operations, e.g. block-stream, perform reads while discarding the | |
7 | results (only copy-on-read matters). In this case they will pass NULL as | |
8 | the target QEMUIOVector, which will however trip bdrv_pad_request, since | |
9 | it wants to extend its passed vector. | |
10 | ||
11 | Simply check for NULL and do nothing, there's no reason to pad the | |
12 | target if it will be discarded anyway. | |
ddbf7a87 TL |
13 | |
14 | Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com> | |
677d0d16 | 15 | --- |
8dca018b SR |
16 | block/io.c | 4 ++++ |
17 | 1 file changed, 4 insertions(+) | |
677d0d16 SR |
18 | |
19 | diff --git a/block/io.c b/block/io.c | |
d03e1b3c | 20 | index b9424024f9..01f50d28c8 100644 |
677d0d16 SR |
21 | --- a/block/io.c |
22 | +++ b/block/io.c | |
d03e1b3c | 23 | @@ -1730,6 +1730,10 @@ static int bdrv_pad_request(BlockDriverState *bs, |
8dca018b SR |
24 | { |
25 | int ret; | |
677d0d16 | 26 | |
8dca018b SR |
27 | + if (!qiov) { |
28 | + return 0; | |
677d0d16 SR |
29 | + } |
30 | + | |
8dca018b | 31 | bdrv_check_qiov_request(*offset, *bytes, *qiov, *qiov_offset, &error_abort); |
677d0d16 | 32 | |
8dca018b | 33 | if (!bdrv_init_padding(bs, *offset, *bytes, pad)) { |