[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 1/4] block/vhdx.c: Don't blindly update the heade
From: |
Jeff Cody |
Subject: |
[Qemu-devel] [PATCH v4 1/4] block/vhdx.c: Don't blindly update the header |
Date: |
Tue, 7 Nov 2017 08:10:33 -0500 |
The VHDX specification requires that before user data modification of
the vhdx image, the VHDX header file and data GUIDs need to be updated.
In vhdx_open(), if the image is set to RDWR, we go ahead and update the
header.
However, just because the image is set to RDWR does not mean we can go
ahead and write at this point - specifically, if the QEMU run state is
INMIGRATE, the underlying file BS may be set to inactive via the BDS
open flag of BDRV_O_INACTIVE. Attempting to write under this condition
will cause an assert in bdrv_co_pwritev().
We can alternatively latch the first time the image is written. And lo
and behold, we do just that, via vhdx_user_visible_write() in
vhdx_co_writev(). This means the call to vhdx_update_headers() in
vhdx_open() is likely just vestigial, and can be removed.
Reported-by: Alexey Kardashevskiy <address@hidden>
Tested-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: Jeff Cody <address@hidden>
---
block/vhdx.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/block/vhdx.c b/block/vhdx.c
index 7ae4589..9956933 100644
--- a/block/vhdx.c
+++ b/block/vhdx.c
@@ -1008,13 +1008,6 @@ static int vhdx_open(BlockDriverState *bs, QDict
*options, int flags,
goto fail;
}
- if (flags & BDRV_O_RDWR) {
- ret = vhdx_update_headers(bs, s, false, NULL);
- if (ret < 0) {
- goto fail;
- }
- }
-
/* TODO: differencing files */
return 0;
--
2.9.5
- [Qemu-devel] [PATCH v4 0/4] Don't write headers if BDS is INACTIVE, Jeff Cody, 2017/11/07
- [Qemu-devel] [PATCH v4 1/4] block/vhdx.c: Don't blindly update the header,
Jeff Cody <=
- [Qemu-devel] [PATCH v4 3/4] block/parallels: add migration blocker, Jeff Cody, 2017/11/07
- [Qemu-devel] [PATCH v4 2/4] block/parallels: Do not update header or truncate image when INMIGRATE, Jeff Cody, 2017/11/07
- [Qemu-devel] [PATCH v4 4/4] qemu-iotests: update unsupported image formats in 194, Jeff Cody, 2017/11/07
- Re: [Qemu-devel] [Qemu-block] [PATCH v4 0/4] Don't write headers if BDS is INACTIVE, Stefan Hajnoczi, 2017/11/09
- Re: [Qemu-devel] [PATCH v4 0/4] Don't write headers if BDS is INACTIVE, Denis V. Lunev, 2017/11/09
- Re: [Qemu-devel] [PATCH v4 0/4] Don't write headers if BDS is INACTIVE, Max Reitz, 2017/11/14