mbox series

[0/9] parallels: Refactor the code of images checks and fix a bug

Message ID 20220818151456.2118470-1-alexander.ivanov@virtuozzo.com (mailing list archive)
Headers show
Series parallels: Refactor the code of images checks and fix a bug | expand

Message

Alexander Ivanov Aug. 18, 2022, 3:14 p.m. UTC
Fix image inflation when offset in BAT is out of image.

Replace whole BAT syncing by flushing only dirty blocks.

Move all the checks outside the main check function in
separate functions

Use WITH_QEMU_LOCK_GUARD for simplier code.

v4 changes:

  Move s->data_end fixing to parallels_co_check(). Split the check
  in parallels_open() and the fix in parallels_co_check() to two patches.

  Move offset convertation to parallels_set_bat_entry().

  Fix 'ret' rewriting by bdrv_co_flush() results.

  Keep 'i' as uint32_t.

Alexander Ivanov (9):
  parallels: Out of image offset in BAT leads to image inflation
  parallels: Fix data_end field value in parallels_co_check()
  parallels: create parallels_set_bat_entry_helper() to assign BAT value
  parallels: Use generic infrastructure for BAT writing in
    parallels_co_check()
  parallels: Move check of unclean image to a separate function
  parallels: Move check of cluster outside image to a separate function
  parallels: Move check of leaks to a separate function
  parallels: Move statistic collection to a separate function
  parallels: Replace qemu_co_mutex_lock by WITH_QEMU_LOCK_GUARD

 block/parallels.c | 197 +++++++++++++++++++++++++++++++++-------------
 1 file changed, 141 insertions(+), 56 deletions(-)

Comments

Denis V. Lunev Aug. 19, 2022, 9:48 a.m. UTC | #1
On 18.08.2022 17:14, Alexander Ivanov wrote:
> Fix image inflation when offset in BAT is out of image.
>
> Replace whole BAT syncing by flushing only dirty blocks.
>
> Move all the checks outside the main check function in
> separate functions
>
> Use WITH_QEMU_LOCK_GUARD for simplier code.
>
> v4 changes:
>
>    Move s->data_end fixing to parallels_co_check(). Split the check
>    in parallels_open() and the fix in parallels_co_check() to two patches.
>
>    Move offset convertation to parallels_set_bat_entry().
>
>    Fix 'ret' rewriting by bdrv_co_flush() results.
>
>    Keep 'i' as uint32_t.
>
> Alexander Ivanov (9):
>    parallels: Out of image offset in BAT leads to image inflation
>    parallels: Fix data_end field value in parallels_co_check()
>    parallels: create parallels_set_bat_entry_helper() to assign BAT value
>    parallels: Use generic infrastructure for BAT writing in
>      parallels_co_check()
>    parallels: Move check of unclean image to a separate function
>    parallels: Move check of cluster outside image to a separate function
>    parallels: Move check of leaks to a separate function
>    parallels: Move statistic collection to a separate function
>    parallels: Replace qemu_co_mutex_lock by WITH_QEMU_LOCK_GUARD
>
>   block/parallels.c | 197 +++++++++++++++++++++++++++++++++-------------
>   1 file changed, 141 insertions(+), 56 deletions(-)
>
That is VERY bad that:
* you have lost (not applied) Reviewed-by: from previous iteration for 
unchanged patches
* you have lost v4 tag in the subject

Den