Commit 9d4a6cf0 authored by Kevin Wolf's avatar Kevin Wolf
Browse files

Merge remote-tracking branch 'mreitz/tags/pull-block-for-kevin-2015-12-18' into queue-block



block-next patches from before the 2.5.0 release.

# gpg: Signature made Fri Dec 18 14:38:44 2015 CET using RSA key ID E838ACAD
# gpg: Good signature from "Max Reitz <mreitz@redhat.com>"

* mreitz/tags/pull-block-for-kevin-2015-12-18:
  block/qapi: allow best-effort query
  qemu-img: abort when full_backing_filename not present
  block/qapi: explicitly warn if !has_full_backing_filename
  block/qapi: always report full_backing_filename
  block/qapi: do not redundantly print "actual path"
  qemu-iotests: s390x: fix test 068
  qemu-iotests: s390x: fix test 051
  qemu-iotests: refine common.config

Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parents ba889444 a5002d53
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -245,15 +245,17 @@ void bdrv_query_image_info(BlockDriverState *bs,
        info->has_backing_filename = true;
        bdrv_get_full_backing_filename(bs, backing_filename2, PATH_MAX, &err);
        if (err) {
            error_propagate(errp, err);
            qapi_free_ImageInfo(info);
            /* Can't reconstruct the full backing filename, so we must omit
             * this field and apply a Best Effort to this query. */
            g_free(backing_filename2);
            return;
            backing_filename2 = NULL;
            error_free(err);
        }

        if (strcmp(backing_filename, backing_filename2) != 0) {
            info->full_backing_filename =
                        g_strdup(backing_filename2);
        /* Always report the full_backing_filename if present, even if it's the
         * same as backing_filename. That they are same is useful info. */
        if (backing_filename2) {
            info->full_backing_filename = g_strdup(backing_filename2);
            info->has_full_backing_filename = true;
        }

@@ -676,7 +678,10 @@ void bdrv_image_info_dump(fprintf_function func_fprintf, void *f,

    if (info->has_backing_filename) {
        func_fprintf(f, "backing file: %s", info->backing_filename);
        if (info->has_full_backing_filename) {
        if (!info->has_full_backing_filename) {
            func_fprintf(f, " (cannot determine actual path)");
        } else if (strcmp(info->backing_filename,
                          info->full_backing_filename) != 0) {
            func_fprintf(f, " (actual path: %s)", info->full_backing_filename);
        }
        func_fprintf(f, "\n");
+4 −1
Original line number Diff line number Diff line
@@ -2040,7 +2040,10 @@ static ImageInfoList *collect_image_info_list(const char *filename,
            if (info->has_full_backing_filename) {
                filename = info->full_backing_filename;
            } else if (info->has_backing_filename) {
                filename = info->backing_filename;
                error_report("Could not determine absolute backing filename,"
                             " but backing filename '%s' present",
                             info->backing_filename);
                goto err;
            }
            if (info->has_backing_filename_format) {
                fmt = info->backing_filename_format;
+2 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ cluster_size: 65536
        "filename": "TEST_DIR/t.IMGFMT",
        "cluster-size": 65536,
        "format": "IMGFMT",
        "full-backing-filename": "TEST_DIR/t.IMGFMT.2.base",
        "backing-filename": "TEST_DIR/t.IMGFMT.2.base",
        "dirty-flag": false
    },
@@ -52,6 +53,7 @@ cluster_size: 65536
        "filename": "TEST_DIR/t.IMGFMT.2.base",
        "cluster-size": 65536,
        "format": "IMGFMT",
        "full-backing-filename": "TEST_DIR/t.IMGFMT.1.base",
        "backing-filename": "TEST_DIR/t.IMGFMT.1.base",
        "dirty-flag": false
    },
+49 −28
Original line number Diff line number Diff line
@@ -148,33 +148,49 @@ run_qemu -drive if=ide
run_qemu -drive if=virtio
run_qemu -drive if=scsi

case "$QEMU_DEFAULT_MACHINE" in
    pc)
        run_qemu -drive if=none,id=disk -device ide-cd,drive=disk
        run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-cd,drive=disk

        run_qemu -drive if=none,id=disk -device ide-drive,drive=disk
        run_qemu -drive if=none,id=disk -device ide-hd,drive=disk
        run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-disk,drive=disk
        run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-hd,drive=disk
        ;;
     *)
        ;;
esac

echo
echo === Read-only ===
echo

case "$QEMU_DEFAULT_MACHINE" in
    pc)
        run_qemu -drive file="$TEST_IMG",if=floppy,readonly=on
        run_qemu -drive file="$TEST_IMG",if=ide,media=cdrom,readonly=on
        run_qemu -drive file="$TEST_IMG",if=scsi,media=cdrom,readonly=on

        run_qemu -drive file="$TEST_IMG",if=ide,readonly=on
        ;;
     *)
        ;;
esac

run_qemu -drive file="$TEST_IMG",if=virtio,readonly=on
run_qemu -drive file="$TEST_IMG",if=scsi,readonly=on

case "$QEMU_DEFAULT_MACHINE" in
    pc)
        run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device ide-cd,drive=disk
        run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device lsi53c895a -device scsi-cd,drive=disk

        run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device ide-drive,drive=disk
        run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device ide-hd,drive=disk
        run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device lsi53c895a -device scsi-disk,drive=disk
        run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device lsi53c895a -device scsi-hd,drive=disk
        ;;
     *)
        ;;
esac

echo
echo === Cache modes ===
@@ -261,26 +277,31 @@ echo

$QEMU_IO -c "write -P 0x11 0 4k" "$TEST_IMG" | _filter_qemu_io

echo 'qemu-io ide0-hd0 "write -P 0x22 0 4k"' | run_qemu -drive file="$TEST_IMG" -snapshot | _filter_qemu_io
echo 'qemu-io ide0-hd0 "write -P 0x22 0 4k"' | run_qemu -drive file="$TEST_IMG",snapshot=on | _filter_qemu_io
echo 'qemu-io ide0-hd0 "write -P 0x22 0 4k"' | run_qemu -drive file.filename="$TEST_IMG",driver=qcow2,snapshot=on | _filter_qemu_io
echo 'qemu-io ide0-hd0 "write -P 0x22 0 4k"' | run_qemu -drive file.filename="$TEST_IMG",driver=qcow2 -snapshot | _filter_qemu_io
echo 'qemu-io ide0-hd0 "write -P 0x22 0 4k"' | run_qemu -drive file="file:$TEST_IMG" -snapshot | _filter_qemu_io
echo 'qemu-io ide0-hd0 "write -P 0x22 0 4k"' | run_qemu -drive file="file:$TEST_IMG",snapshot=on | _filter_qemu_io
device_id="drive0"

echo "qemu-io $device_id \"write -P 0x22 0 4k\"" | run_qemu -drive file="$TEST_IMG",if=none,id=$device_id -snapshot | _filter_qemu_io
echo "qemu-io $device_id \"write -P 0x22 0 4k\"" | run_qemu -drive file="$TEST_IMG",snapshot=on,if=none,id=$device_id | _filter_qemu_io
echo "qemu-io $device_id \"write -P 0x22 0 4k\"" | run_qemu -drive file.filename="$TEST_IMG",driver=qcow2,snapshot=on,if=none,id=$device_id\
                                                 | _filter_qemu_io
echo "qemu-io $device_id \"write -P 0x22 0 4k\"" | run_qemu -drive file.filename="$TEST_IMG",driver=qcow2,if=none,id=$device_id -snapshot\
                                                 | _filter_qemu_io
echo "qemu-io $device_id \"write -P 0x22 0 4k\"" | run_qemu -drive file="file:$TEST_IMG",if=none,id=$device_id -snapshot | _filter_qemu_io
echo "qemu-io $device_id \"write -P 0x22 0 4k\"" | run_qemu -drive file="file:$TEST_IMG",snapshot=on,if=none,id=$device_id | _filter_qemu_io

# Opening a read-only file r/w with snapshot=on
chmod u-w "$TEST_IMG"
echo 'qemu-io ide0-hd0 "write -P 0x22 0 4k"' | run_qemu -drive file="$TEST_IMG" -snapshot | _filter_qemu_io
echo 'qemu-io ide0-hd0 "write -P 0x22 0 4k"' | run_qemu -drive file="$TEST_IMG",snapshot=on | _filter_qemu_io
echo "qemu-io $device_id \"write -P 0x22 0 4k\"" | run_qemu -drive file="$TEST_IMG",if=none,id=$device_id -snapshot | _filter_qemu_io
echo "qemu-io $device_id \"write -P 0x22 0 4k\"" | run_qemu -drive file="$TEST_IMG",snapshot=on,if=none,id=$device_id | _filter_qemu_io
chmod u+w "$TEST_IMG"

$QEMU_IO -c "read -P 0x11 0 4k" "$TEST_IMG" | _filter_qemu_io

echo 'qemu-io ide0-hd0 "write -P 0x22 0 4k"' | run_qemu -drive file="$TEST_IMG",snapshot=off | _filter_qemu_io
echo "qemu-io $device_id \"write -P 0x22 0 4k\"" | run_qemu -drive file="$TEST_IMG",snapshot=off,if=none,id=$device_id | _filter_qemu_io

$QEMU_IO -c "read -P 0x22 0 4k" "$TEST_IMG" | _filter_qemu_io

echo -e 'qemu-io ide0-hd0 "write -P 0x33 0 4k"\ncommit ide0-hd0' | run_qemu -drive file="$TEST_IMG",snapshot=on | _filter_qemu_io
echo -e "qemu-io $device_id \"write -P 0x33 0 4k\"\ncommit $device_id" | run_qemu -drive file="$TEST_IMG",snapshot=on,if=none,id=$device_id\
                                                                       | _filter_qemu_io

$QEMU_IO -c "read -P 0x33 0 4k" "$TEST_IMG" | _filter_qemu_io

+38 −102

File changed.

Preview size limit exceeded, changes collapsed.

Loading