qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 0/5] parallels: Add duplication check, repair at open, fi


From: Denis V. Lunev
Subject: Re: [PATCH v6 0/5] parallels: Add duplication check, repair at open, fix bugs
Date: Wed, 21 Jun 2023 18:59:27 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0

On 6/21/23 10:20, Alexander Ivanov wrote:
Fix incorrect data end calculation in parallels_open().

Check if data_end greater than the file size.

Add change_info argument to parallels_check_leak().

Add checking and repairing duplicate offsets in BAT

Image repairing in parallels_open().

v6:
2: Different patch. Refused to split image leak handling. Instead there is a
    patch with a data_end check.
3: Different patch. There is a patch with change_info argument.
4: Removed changing fprintf by qemu_log from this patchset. Previously 3rd
    patch became 4th. Replaced qemu_memalign() by qemu_blockalign(). Got
    rid of iovecs, replaced bdrv_co_pwritev() by bdrv_co_pwrite(). Added
    assert(cluster_index < bitmap_size). Now BAT changes are reverted if
    there was an error in the cluster copying process. Simplified a sector
    calculation.
5: Moved header magic check to the appropriate place. Added a
    migrate_del_blocker() call and s->bat_dirty_bmap freeing on error.

v5:
3: Fixed a byteorder bug, fixed zero-length image handling and fixed uint32
    truncation.

v4:
2,5: Rebased.

v3:
2: Added (size >= res->image_end_offset) assert and changed the comment in
    parallels_get_leak_size(). Changed error printing and leaks fixing order.
3: Removed highest_offset() helper, instead image_end_offset field is used.
5: Moved highest_offset() code to parallels_open() - now it is used only in
    this function. Fixed data_end update condition. Fixed a leak of
    s->migration_blocker.

v2:
2: Moved outsude parallels_check_leak() 2 helpers:
    parallels_get_leak_size() and parallels_fix_leak().
3: Used highest_offset() helper in parallels_check_leak(). Fixed a typo.
    Added comments. Replaced g_malloc() call by qemu_memalign(). Replaced
    bdrv_pread() call by bdrv_co_pread(). Got rid of keeping bytes and
    sectors in the same variable. Added setting the bitmap of the used
    clusters for a new allocated cluster if it isn't out of the bitmap.
    Moved the leak fix to the end of all the checks. Removed a dependence
    on image format for the duplicate check.
4 (old): Merged this patch to the previous.
4 (former 5): Fixed formatting.
5 (former 6): Fixed comments. Added O_INACTIVE check in the condition.
               Replaced inuse detection by header_unclean checking.
               Replaced playing with corutines by bdrv_check() usage.

Alexander Ivanov (5):
   parallels: Incorrect data end calculation in parallels_open()
   parallels: Check if data_end greater than the file size
   parallels: Add change_info argument to parallels_check_leak()
   parallels: Add checking and repairing duplicate offsets in BAT
   parallels: Image repairing in parallels_open()

  block/parallels.c | 228 +++++++++++++++++++++++++++++++++++++++-------
  1 file changed, 195 insertions(+), 33 deletions(-)

could you pls also include tests for this functionality for the next iteration?

We have had this series some time ago but it was lost



reply via email to

[Prev in Thread] Current Thread [Next in Thread]