]>
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. | |
13 | --- | |
8dca018b SR |
14 | block/io.c | 4 ++++ |
15 | 1 file changed, 4 insertions(+) | |
677d0d16 SR |
16 | |
17 | diff --git a/block/io.c b/block/io.c | |
8dca018b | 18 | index ca2dca3007..a9e70a4f91 100644 |
677d0d16 SR |
19 | --- a/block/io.c |
20 | +++ b/block/io.c | |
8dca018b SR |
21 | @@ -1731,6 +1731,10 @@ static int bdrv_pad_request(BlockDriverState *bs, |
22 | { | |
23 | int ret; | |
677d0d16 | 24 | |
8dca018b SR |
25 | + if (!qiov) { |
26 | + return 0; | |
677d0d16 SR |
27 | + } |
28 | + | |
8dca018b | 29 | bdrv_check_qiov_request(*offset, *bytes, *qiov, *qiov_offset, &error_abort); |
677d0d16 | 30 | |
8dca018b | 31 | if (!bdrv_init_padding(bs, *offset, *bytes, pad)) { |