aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2021-08-04 09:27:24 +0100
committerPeter Maydell <peter.maydell@linaro.org>2021-08-04 09:27:24 +0100
commitef6607edf005dc5e52f60e7e1beea49bf2d48a00 (patch)
tree9513c13896e9d60243c3527d0a269656062aa95a
parentcb2f4b8750b7e1c954570d19b104d4fdbeb8739a (diff)
parent87ab88025247b893aad5071fd38301b67be76d1a (diff)
downloadqemu-ef6607edf005dc5e52f60e7e1beea49bf2d48a00.zip
qemu-ef6607edf005dc5e52f60e7e1beea49bf2d48a00.tar.gz
qemu-ef6607edf005dc5e52f60e7e1beea49bf2d48a00.tar.bz2
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging
Block layer patches - Fix hang after request padding error (Windows + 512-on-4k emulation) # gpg: Signature made Tue 03 Aug 2021 15:40:10 BST # gpg: using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6 # gpg: issuer "kwolf@redhat.com" # gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full] # Primary key fingerprint: DC3D EB15 9A9A F95D 3D74 56FE 7F09 B272 C88F 2FD6 * remotes/kevin/tags/for-upstream: block: Fix in_flight leak in request padding error path Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--block/io.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/block/io.c b/block/io.c
index e0a689c..a199427 100644
--- a/block/io.c
+++ b/block/io.c
@@ -1841,7 +1841,7 @@ int coroutine_fn bdrv_co_preadv_part(BdrvChild *child,
ret = bdrv_pad_request(bs, &qiov, &qiov_offset, &offset, &bytes, &pad,
NULL);
if (ret < 0) {
- return ret;
+ goto fail;
}
tracked_request_begin(&req, bs, offset, bytes, BDRV_TRACKED_READ);
@@ -1849,10 +1849,11 @@ int coroutine_fn bdrv_co_preadv_part(BdrvChild *child,
bs->bl.request_alignment,
qiov, qiov_offset, flags);
tracked_request_end(&req);
- bdrv_dec_in_flight(bs);
-
bdrv_padding_destroy(&pad);
+fail:
+ bdrv_dec_in_flight(bs);
+
return ret;
}