Commit 8b6b2afc authored by Pierre Riteau's avatar Pierre Riteau Committed by Kevin Wolf
Browse files

Avoid divide by zero when there is no block device to migrate



When block migration is requested and no read-write block device is
present, a divide by zero exception is triggered because
total_sector_sum equals zero.

Signed-off-by: default avatarPierre Riteau <Pierre.Riteau@irisa.fr>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 70b4f4bb
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -350,7 +350,12 @@ static int blk_mig_save_bulked_block(Monitor *mon, QEMUFile *f)
        }
    }

    progress = completed_sector_sum * 100 / block_mig_state.total_sector_sum;
    if (block_mig_state.total_sector_sum != 0) {
        progress = completed_sector_sum * 100 /
                   block_mig_state.total_sector_sum;
    } else {
        progress = 100;
    }
    if (progress != block_mig_state.prev_progress) {
        block_mig_state.prev_progress = progress;
        qemu_put_be64(f, (progress << BDRV_SECTOR_BITS)