diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2020-10-30 14:36:52 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2020-10-30 14:36:52 +0000 |
| commit | c99fa56b95a72f6debd50a280561895d078ae020 (patch) | |
| tree | 1f1ec63486614b61eb627eebbe1c62d3ef3c2620 /block.c | |
| parent | d03e884e4ece4b528ed87d4133867fcf87aa76e5 (diff) | |
| parent | 1a6d3bd229d429879a85a9105fb84cae049d083c (diff) | |
| download | focaccia-qemu-c99fa56b95a72f6debd50a280561895d078ae020.tar.gz focaccia-qemu-c99fa56b95a72f6debd50a280561895d078ae020.zip | |
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging
Block layer patches: - qcow2: Skip copy-on-write when allocating a zero cluster - qemu-img: add support for rate limit in qemu-img convert/commit - Fix deadlock when deleting a block node during drain_all # gpg: Signature made Tue 27 Oct 2020 15:14:07 GMT # 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: End quiescent sections when a BDS is deleted qcow2: Skip copy-on-write when allocating a zero cluster qcow2: Report BDRV_BLOCK_ZERO more accurately in bdrv_co_block_status() qemu-img: add support for rate limit in qemu-img convert qemu-img: add support for rate limit in qemu-img commit Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'block.c')
| -rw-r--r-- | block.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/block.c b/block.c index 430edf79bb..ee5b28a979 100644 --- a/block.c +++ b/block.c @@ -4458,6 +4458,15 @@ static void bdrv_close(BlockDriverState *bs) } QLIST_INIT(&bs->aio_notifiers); bdrv_drained_end(bs); + + /* + * If we're still inside some bdrv_drain_all_begin()/end() sections, end + * them now since this BDS won't exist anymore when bdrv_drain_all_end() + * gets called. + */ + if (bs->quiesce_counter) { + bdrv_drain_all_end_quiesce(bs); + } } void bdrv_close_all(void) |