From: Hanna Czenczek Date: Mon, 10 Nov 2025 15:48:46 +0000 (+0100) Subject: qcow2: Re-initialize lock in invalidate_cache X-Git-Tag: v10.2.0-rc1~5^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90db3a1721b30daf839901813616c0854f383cc5;p=thirdparty%2Fqemu.git qcow2: Re-initialize lock in invalidate_cache After clearing our state (memset()-ing it to 0), we should re-initialize objects that need it. Specifically, that applies to s->lock, which is originally initialized in qcow2_open(). Given qemu_co_mutex_init() is just a memset() to 0, this is functionally a no-op, but still seems like the right thing to do. Signed-off-by: Hanna Czenczek Message-ID: <20251110154854.151484-12-hreitz@redhat.com> Reviewed-by: Kevin Wolf Signed-off-by: Kevin Wolf --- diff --git a/block/qcow2.c b/block/qcow2.c index cb0bdb32ec..4e4f77170a 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -2873,6 +2873,8 @@ qcow2_co_invalidate_cache(BlockDriverState *bs, Error **errp) data_file = s->data_file; memset(s, 0, sizeof(BDRVQcow2State)); s->data_file = data_file; + /* Re-initialize objects initialized in qcow2_open() */ + qemu_co_mutex_init(&s->lock); options = qdict_clone_shallow(bs->options);