• K
    block/backup: Fix hang for unaligned image size · d40593dd
    Kevin Wolf 提交于
    When doing a block backup of an image with an unaligned size (with
    respect to the BACKUP_CLUSTER_SIZE), qemu would check the allocation
    status of sectors after the end of the image. bdrv_is_allocated()
    returns a result that is valid for 0 sectors in this case, so the backup
    job ran into an endless loop.
    
    Stop looping when seeing a result valid for 0 sectors, we're at EOF then.
    
    The test case looks somewhat unrelated at first sight because I
    originally tried to reproduce a different suspected bug that turned out
    to not exist. Still a good test case and it accidentally found this one.
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    d40593dd
backup.c 12.1 KB