[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v7 0/5] fix & merge block_status_above and is_allocated_above
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v7 0/5] fix & merge block_status_above and is_allocated_above |
Date: |
Thu, 24 Sep 2020 22:39:58 +0300 |
Hi all!
These series are here to address the following problem:
block-status-above functions may consider space after EOF of
intermediate backing files as unallocated, which is wrong, as these
backing files are the reason of producing zeroes, we never go further by
backing chain after a short backing file. So, if such short-backing file
is _inside_ requested sub-chain of the backing chain, we should never
report space after its EOF as unallocated.
See patches 01,04,05 for details.
Note, that this series leaves for another day the general problem
around block-status: misuse of BDRV_BLOCK_ALLOCATED as is-fs-allocated
vs go-to-backing.
Audit for this problem is done here:
"backing chain & block status & filters"
https://lists.gnu.org/archive/html/qemu-devel/2020-04/msg04706.html
And I'm going to prepare series to address this problem.
Also, get_block_status func have same disease, but remains unfixed here:
I want to make separate series for it.
v7:
- add Alberto's r-bs in all patchs
- rebase to new backing-chain handling, bdrv_filter_or_cow_bs is used instead
of backing_bs
Based on series "[PATCH v9 0/7] coroutines: generate wrapper code" or
in other words:
Based-on: <20200924185414.28642-1-vsementsov@virtuozzo.com>
Vladimir Sementsov-Ogievskiy (5):
block/io: fix bdrv_co_block_status_above
block/io: bdrv_common_block_status_above: support include_base
block/io: bdrv_common_block_status_above: support bs == base
block/io: fix bdrv_is_allocated_above
iotests: add commit top->base cases to 274
block/coroutines.h | 2 +
block/io.c | 132 +++++++++++++++++++++----------------
block/qcow2.c | 16 ++++-
tests/qemu-iotests/274 | 20 ++++++
tests/qemu-iotests/274.out | 68 +++++++++++++++++++
5 files changed, 179 insertions(+), 59 deletions(-)
--
2.21.3
- [PATCH v7 0/5] fix & merge block_status_above and is_allocated_above,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v7 1/5] block/io: fix bdrv_co_block_status_above, Vladimir Sementsov-Ogievskiy, 2020/09/24
- [PATCH v7 3/5] block/io: bdrv_common_block_status_above: support bs == base, Vladimir Sementsov-Ogievskiy, 2020/09/24
- [PATCH v7 2/5] block/io: bdrv_common_block_status_above: support include_base, Vladimir Sementsov-Ogievskiy, 2020/09/24
- [PATCH v7 4/5] block/io: fix bdrv_is_allocated_above, Vladimir Sementsov-Ogievskiy, 2020/09/24
- [PATCH v7 5/5] iotests: add commit top->base cases to 274, Vladimir Sementsov-Ogievskiy, 2020/09/24
- Re: [PATCH v7 0/5] fix & merge block_status_above and is_allocated_above, no-reply, 2020/09/24