Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP4
qemu.30222
block-Fix-locking-in-qmp_block_resize.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File block-Fix-locking-in-qmp_block_resize.patch of Package qemu.30222
From: Kevin Wolf <kwolf@redhat.com> Date: Thu, 3 Dec 2020 18:23:10 +0100 Subject: block: Fix locking in qmp_block_resize() Git-commit: 8089eab2bd5fb160b038e64e14cf7ffb3f37091e The drain functions assume that we hold the AioContext lock of the drained block node. Make sure to actually take the lock. Cc: qemu-stable@nongnu.org Fixes: eb94b81a94bce112e6b206df846c1551aaf6cab6 Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20201203172311.68232-3-kwolf@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Bruce Rogers <brogers@suse.com> --- blockdev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/blockdev.c b/blockdev.c index a7f0149d64152651be78f6cd8e61..e4dfa65aa444346c3c09dbc6d1c5 100644 --- a/blockdev.c +++ b/blockdev.c @@ -2481,13 +2481,16 @@ void coroutine_fn qmp_block_resize(bool has_device, const char *device, return; } + bdrv_co_lock(bs); bdrv_drained_begin(bs); + bdrv_co_unlock(bs); + old_ctx = bdrv_co_enter(bs); blk_truncate(blk, size, false, PREALLOC_MODE_OFF, 0, errp); bdrv_co_leave(bs, old_ctx); - bdrv_drained_end(bs); bdrv_co_lock(bs); + bdrv_drained_end(bs); blk_unref(blk); bdrv_co_unlock(bs); }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor