Commit 86899072 authored by Vishvananda Ishaya's avatar Vishvananda Ishaya Committed by Kevin Wolf
Browse files

block: Create proper size file for disk mirror



The qmp monitor command to mirror a disk was passing -1 for size
along with the disk's backing file. This size of the resulting disk
is the size of the backing file, which is incorrect if the disk
has been resized. Therefore we should always pass in the size of
the current disk.

Signed-off-by: default avatarVishvananda Ishaya <vishvananda@gmail.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent a2623021
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1282,11 +1282,11 @@ void qmp_drive_mirror(const char *device, const char *target,
        return;
    }

    bdrv_get_geometry(bs, &size);
    size *= 512;
    if (sync == MIRROR_SYNC_MODE_FULL && mode != NEW_IMAGE_MODE_EXISTING) {
        /* create new image w/o backing file */
        assert(format && drv);
        bdrv_get_geometry(bs, &size);
        size *= 512;
        bdrv_img_create(target, format,
                        NULL, NULL, NULL, size, flags, &local_err);
    } else {
@@ -1299,7 +1299,7 @@ void qmp_drive_mirror(const char *device, const char *target,
            bdrv_img_create(target, format,
                            source->filename,
                            source->drv->format_name,
                            NULL, -1, flags, &local_err);
                            NULL, size, flags, &local_err);
            break;
        default:
            abort();