Skip to content
  • Kevin Wolf's avatar
    block/backup: Fix hang for unaligned image size · d40593dd
    Kevin Wolf authored
    
    
    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: default avatarKevin Wolf <kwolf@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    d40593dd