[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/2] block/vdi: Fix bmap writing error
From: |
Max Reitz |
Subject: |
[Qemu-devel] [PATCH 0/2] block/vdi: Fix bmap writing error |
Date: |
Tue, 21 Oct 2014 10:51:24 +0200 |
The bmap size in block/vdi.c may exceed INT_MAX. Using
bdrv_pwrite_sync() (which takes an int byte count) is therefore not a
good idea. The second patch of this series fixes this by replacing
bdrv_pwrite_sync() by bdrv_write()+bdrv_flush() (we don't need the p in
pwrite here).
The first patch employs ROUND_UP() and DIV_ROUND_UP() in block/vdi.c, so
you are reminded that bmap_size is aligned to BDRV_SECTOR_SIZE for the
second patch.
See https://bugzilla.redhat.com/show_bug.cgi?id=1154940 for a bug
report.
I will not include an iotest in this series because this would require
qemu to allocate and then write about 2G of data; yes, test 1 in 084
fails for me because qemu cannot allocate 4G for the bmap.
In fact, I can only test this once I'm home where I have more RAM
available (I made the mistake of activating swap space to test this only
once).
Max Reitz (2):
block/vdi: Use {DIV_,}ROUND_UP
block/vdi: Do not use bdrv_pwrite_sync() for bmap
block/vdi.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
--
1.9.3
- [Qemu-devel] [PATCH 0/2] block/vdi: Fix bmap writing error,
Max Reitz <=