mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-07 20:57:50 +00:00
util/hbitmap: update orig_size on truncate
Without this, hbitmap_next_zero and hbitmap_next_dirty_area are broken after truncate. So, orig_size is broken since it's introduction in 76d570dc495c56bb. Fixes: 76d570dc495c56bb Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-id: 20190805120120.23585-1-vsementsov@virtuozzo.com Reviewed-by: Max Reitz <mreitz@redhat.com> Cc: qemu-stable@nongnu.org Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
5f594a2e99
commit
4e4de22279
@ -53,7 +53,9 @@
|
||||
*/
|
||||
|
||||
struct HBitmap {
|
||||
/* Size of the bitmap, as requested in hbitmap_alloc. */
|
||||
/*
|
||||
* Size of the bitmap, as requested in hbitmap_alloc or in hbitmap_truncate.
|
||||
*/
|
||||
uint64_t orig_size;
|
||||
|
||||
/* Number of total bits in the bottom level. */
|
||||
@ -732,6 +734,8 @@ void hbitmap_truncate(HBitmap *hb, uint64_t size)
|
||||
uint64_t num_elements = size;
|
||||
uint64_t old;
|
||||
|
||||
hb->orig_size = size;
|
||||
|
||||
/* Size comes in as logical elements, adjust for granularity. */
|
||||
size = (size + (1ULL << hb->granularity) - 1) >> hb->granularity;
|
||||
assert(size <= ((uint64_t)1 << HBITMAP_LOG_MAX_SIZE));
|
||||
|
Loading…
x
Reference in New Issue
Block a user