qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] a71835: qcow2: Set zero flag for discarded cl


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] a71835: qcow2: Set zero flag for discarded clusters
Date: Tue, 25 Feb 2014 04:00:05 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: a71835a0ccff168b19ffc9656fe27988821ec59a
      
https://github.com/qemu/qemu/commit/a71835a0ccff168b19ffc9656fe27988821ec59a
  Author: Kevin Wolf <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/qcow2-cluster.c
    M tests/qemu-iotests/046

  Log Message:
  -----------
  qcow2: Set zero flag for discarded clusters

Instead of making the backing file contents visible again after a discard
request, set the zero flag if possible (i.e. on version >= 3).

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: e6dc8a1f83835054fcaf1dcb41af7c868688c068
      
https://github.com/qemu/qemu/commit/e6dc8a1f83835054fcaf1dcb41af7c868688c068
  Author: Kevin Wolf <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Fix bdrv_is_first_non_filter()

Consider top level BlockDriverStates as well.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Tested-by: Benoit Canet <address@hidden>


  Commit: f67503e5bd8997ea7ec3f4bfa0af0e06321771a6
      
https://github.com/qemu/qemu/commit/f67503e5bd8997ea7ec3f4bfa0af0e06321771a6
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block.c
    M block/blkdebug.c
    M block/blkverify.c
    M block/qcow2.c
    M block/vmdk.c
    M block/vvfat.c
    M blockdev.c
    M hw/block/xen_disk.c
    M include/block/block.h
    M qemu-img.c
    M qemu-io.c
    M qemu-nbd.c

  Log Message:
  -----------
  block: Change BDS parameter of bdrv_open() to **

Make bdrv_open() take a pointer to a BDS pointer, similarly to
bdrv_file_open(). If a pointer to a NULL pointer is given, bdrv_open()
will create a new BDS with an empty name; if the BDS pointer is not
NULL, that existing BDS will be reused (in the same way as bdrv_open()
already did).

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: ddf5636dc9e4be894f2ab4a5f803d915478b5099
      
https://github.com/qemu/qemu/commit/ddf5636dc9e4be894f2ab4a5f803d915478b5099
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block.c
    M block/qcow2.c
    M block/vmdk.c
    M block/vvfat.c
    M blockdev.c
    M hw/block/xen_disk.c
    M include/block/block.h
    M qemu-img.c
    M qemu-io.c
    M qemu-nbd.c

  Log Message:
  -----------
  block: Add reference parameter to bdrv_open()

Allow bdrv_open() to handle references to existing block devices just as
bdrv_file_open() is already capable of.

Signed-off-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2e40134bfdbb073512f9f264cb96162787ec62b1
      
https://github.com/qemu/qemu/commit/2e40134bfdbb073512f9f264cb96162787ec62b1
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block.c
    M block/cow.c
    M block/qcow.c
    M block/qcow2.c
    M block/qed.c
    M block/sheepdog.c
    M block/vhdx.c
    M block/vmdk.c
    M include/block/block.h
    M qemu-io.c

  Log Message:
  -----------
  block: Make bdrv_file_open() static

Add the bdrv_open() option BDRV_O_PROTOCOL which results in passing the
call to bdrv_file_open(). Additionally, make bdrv_file_open() static and
therefore bdrv_open() the only way to call it.

Consequently, all existing calls to bdrv_file_open() have to be adjusted
to use bdrv_open() with the BDRV_O_PROTOCOL flag instead.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5d12aa63c77b4ee502da9b87de79bf2a9c225ee4
      
https://github.com/qemu/qemu/commit/5d12aa63c77b4ee502da9b87de79bf2a9c225ee4
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Reuse reference handling from bdrv_open()

Remove the reference parameter and the related handling code from
bdrv_file_open(), since it exists in bdrv_open() now as well.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: d4446eae630a363403ec73182cf371deeed4e172
      
https://github.com/qemu/qemu/commit/d4446eae630a363403ec73182cf371deeed4e172
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Remove bdrv_new() from bdrv_file_open()

Change bdrv_file_open() to take a simple pointer to an already existing
BDS instead of an indirect one. The BDS will be created in bdrv_open()
if necessary.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5469a2a688b47bc6d8d224c3f1b02cd96b0e4b65
      
https://github.com/qemu/qemu/commit/5469a2a688b47bc6d8d224c3f1b02cd96b0e4b65
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Handle bs->options in bdrv_open() only

The fail paths of bdrv_file_open() and bdrv_open() naturally exhibit
similarities, thus it is possible to reuse the one from bdrv_open() and
shorten the one in bdrv_file_open() accordingly.

Also, setting bs->options in bdrv_file_open() is not necessary if it is
already done in bdrv_open().

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5acd9d81e1a59e1929aa3a06571f3fda1101c3a2
      
https://github.com/qemu/qemu/commit/5acd9d81e1a59e1929aa3a06571f3fda1101c3a2
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Reuse success path from bdrv_open()

The fail and success paths of bdrv_file_open() may be further shortened
by reusing code already existent in bdrv_open(). This includes
bdrv_file_open() not taking the reference to options which allows the
removal of QDECREF(options) in that function.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f7d9fd8c7270de25b1e0d0a462b6958b53aa31b2
      
https://github.com/qemu/qemu/commit/f7d9fd8c7270de25b1e0d0a462b6958b53aa31b2
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block.c
    M block/blkdebug.c
    M block/blkverify.c
    M include/block/block.h

  Log Message:
  -----------
  block: Remove bdrv_open_image()'s force_raw option

This option is now unnecessary since specifying BDRV_O_PROTOCOL as flag
will do exactly the same.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: a69d9af449e9de200abc751d8614124c7486426f
      
https://github.com/qemu/qemu/commit/a69d9af449e9de200abc751d8614124c7486426f
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/nbd.c
    M tests/qemu-iotests/051.out

  Log Message:
  -----------
  nbd: produce a better error if neither host nor port is passed

Before:
    $ qemu-io-old
    qemu-io-old> open -r -o file.driver=nbd
    qemu-io-old: can't open device (null): Could not open image: Invalid 
argument
    $ ./qemu-io-old
    qemu-io-old> open -r -o file.driver=nbd,file.host=foo,file.path=bar
    path and host may not be used at the same time.
    qemu-io-old: can't open device (null): Could not open image: Invalid 
argument

After:
    $ ./qemu-io
    qemu-io> open -r -o file.driver=nbd
    one of path and host must be specified.
    qemu-io: can't open device (null): Could not open image: Invalid argument
    $ ./qemu-io
    qemu-io> open -r -o file.driver=nbd,file.host=foo,file.path=bar
    path and host may not be used at the same time.
    qemu-io: can't open device (null): Could not open image: Invalid argument

Next patch will fix the error propagation.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 77e8b9ca64e85d3d309f322410964b7852ec091e
      
https://github.com/qemu/qemu/commit/77e8b9ca64e85d3d309f322410964b7852ec091e
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/nbd.c
    M include/block/nbd.h
    M nbd.c
    M tests/qemu-iotests/051.out

  Log Message:
  -----------
  nbd: correctly propagate errors

Before:
    $ ./qemu-io-old
    qemu-io-old> open -r -o file.driver=nbd
    one of path and host must be specified.
    qemu-io-old: can't open device (null): Could not open image: Invalid 
argument
    $ ./qemu-io-old
    qemu-io-old> open -r -o file.driver=nbd,file.host=foo,file.path=bar
    path and host may not be used at the same time.
    qemu-io-old: can't open device (null): Could not open image: Invalid 
argument

After:
    $ ./qemu-io
    qemu-io> open -r -o file.driver=nbd
    qemu-io: can't open device (null): one of path and host must be specified.
    $ ./qemu-io
    qemu-io> open -r -o file.driver=nbd,file.host=foo,file.path=bar
    qemu-io: can't open device (null): path and host may not be used at the 
same time.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c06b72781dc6dff3f1e8209b7280ff4650eb6f36
      
https://github.com/qemu/qemu/commit/c06b72781dc6dff3f1e8209b7280ff4650eb6f36
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M include/block/nbd.h
    M nbd.c

  Log Message:
  -----------
  nbd: inline tcp_socket_incoming_spec into sole caller

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 537b41f5013e1951fa15e8f18855b18d76124ce4
      
https://github.com/qemu/qemu/commit/537b41f5013e1951fa15e8f18855b18d76124ce4
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M include/block/nbd.h
    M nbd.c
    M qemu-nbd.c

  Log Message:
  -----------
  nbd: move socket wrappers to qemu-nbd

qemu-nbd is one of the few valid users of qerror_report_err.  Move
the error-reporting socket wrappers there.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 35cb1748d54c8e56881a5e10138b3eb090f3a6bc
      
https://github.com/qemu/qemu/commit/35cb1748d54c8e56881a5e10138b3eb090f3a6bc
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  iscsi: fix indentation

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f2917853f715b0ef55df29eb2ffea29dc69ce814
      
https://github.com/qemu/qemu/commit/f2917853f715b0ef55df29eb2ffea29dc69ce814
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  iscsi: correctly propagate errors in iscsi_open

Before:
    $ ./qemu-io-old
    qemu-io-old> open -r -o file.driver=iscsi,file.filename=foo
    Failed to parse URL : foo
    qemu-io-old: can't open device (null): Could not open 'foo': Invalid 
argument

After:
    $ ./qemu-io
    qemu-io> open -r -o file.driver=iscsi,file.filename=foo
    qemu-io: can't open device (null): Failed to parse URL : foo

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 24897a767bd778fc6a050537d024565f9272cd06
      
https://github.com/qemu/qemu/commit/24897a767bd778fc6a050537d024565f9272cd06
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  gluster: default scheme to gluster:// and host to localhost.

Currently, "gluster:///volname/img" and (using file. options)
"file.driver=gluster,file.filename=foo" will segfault.  Also,
"//host/volname/img" will be rejected, but it is a valid URL
that should be accepted just fine with "file.driver=gluster".
Accept all of these, by inferring missing transport and host
as TCP and localhost respectively.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: a7451cb850d115f257080aff3fbc54f255ebf8f7
      
https://github.com/qemu/qemu/commit/a7451cb850d115f257080aff3fbc54f255ebf8f7
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  gluster: correctly propagate errors

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f8d924e48167ec14ec4556441ec7999a30ef6640
      
https://github.com/qemu/qemu/commit/f8d924e48167ec14ec4556441ec7999a30ef6640
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/cow.c

  Log Message:
  -----------
  cow: correctly propagate errors

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2a94fee3f649bdd2d71c78bb56977284f096f842
      
https://github.com/qemu/qemu/commit/2a94fee3f649bdd2d71c78bb56977284f096f842
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/curl.c

  Log Message:
  -----------
  curl: correctly propagate errors

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: b6d5066d32f9e6c3d7508c1af9ae78327a927120
      
https://github.com/qemu/qemu/commit/b6d5066d32f9e6c3d7508c1af9ae78327a927120
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/qcow.c

  Log Message:
  -----------
  qcow: correctly propagate errors

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 0fea6b797202c9efea534a474220a1cf23dd1968
      
https://github.com/qemu/qemu/commit/0fea6b797202c9efea534a474220a1cf23dd1968
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: correctly propagate errors

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 6890aad46b14849318053fe3ace6109e0f9c5932
      
https://github.com/qemu/qemu/commit/6890aad46b14849318053fe3ace6109e0f9c5932
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/vhdx.c

  Log Message:
  -----------
  vhdx: correctly propagate errors

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c0f92b526dbd45fc5b539f51b7379156814dafe9
      
https://github.com/qemu/qemu/commit/c0f92b526dbd45fc5b539f51b7379156814dafe9
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/vvfat.c

  Log Message:
  -----------
  vvfat: correctly propagate errors

Before:
    $ ./qemu-io-old
    qemu-io-old> open -r -o driver=vvfat,fat-type=24,dir=i386-softmmu
    Valid FAT types are only 12, 16 and 32
    qemu-io-old: can't open device (null): Could not open image: Invalid 
argument

After:
    $ ./qemu-io
    qemu-io> open -r -o driver=vvfat,fat-type=24,dir=i386-softmmu
    qemu-io: can't open device (null): Valid FAT types are only 12, 16 and 32

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: a8842e6d2acc815e9660cc743bd0b0daba18c935
      
https://github.com/qemu/qemu/commit/a8842e6d2acc815e9660cc743bd0b0daba18c935
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: extract vmdk_read_desc

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: d1833ef52be349e41d17e9c5ddaea8bb4ad3a7fb
      
https://github.com/qemu/qemu/commit/d1833ef52be349e41d17e9c5ddaea8bb4ad3a7fb
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: push vmdk_read_desc up to caller

Currently, we just try reading a VMDK file as both image and descriptor.
This makes it hard to choose which of the two attempts gave the best error.
We'll decide in advance if the file looks like an image or a descriptor,
and this patch is the first step to that end.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 37f09e5e3d206e7c555d28a7755cecfa137dad22
      
https://github.com/qemu/qemu/commit/37f09e5e3d206e7c555d28a7755cecfa137dad22
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/vmdk.c
    M tests/qemu-iotests/059.out

  Log Message:
  -----------
  vmdk: do not try opening a file as both image and descriptor

This prepares for propagating errors from vmdk_open_sparse and
vmdk_open_desc_file up to the caller of vmdk_open.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 89ac8480a8c7f73dd943dcb1313d6bd984f9a870
      
https://github.com/qemu/qemu/commit/89ac8480a8c7f73dd943dcb1313d6bd984f9a870
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/vmdk.c
    M tests/qemu-iotests/059.out

  Log Message:
  -----------
  vmdk: correctly propagate errors

Now that we can return the "right" errors, use the Error** parameter
to pass them back instead of just printing them.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 76abe4071d111a9ca6dcc9b9689a831c39ffa718
      
https://github.com/qemu/qemu/commit/76abe4071d111a9ca6dcc9b9689a831c39ffa718
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/bochs.c
    M block/cow.c
    M block/parallels.c
    M block/qcow.c
    M block/qcow2.c
    M block/qed.c
    M block/vdi.c
    M block/vmdk.c
    M block/vpc.c

  Log Message:
  -----------
  block: do not abuse EMEDIUMTYPE

Returning "Wrong medium type" for an image that does not have a valid
header is a bit weird.  Improve the error by mentioning what format
was trying to open it.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5b7aa9b56d1bfc79916262f380c3fc7961becb50
      
https://github.com/qemu/qemu/commit/5b7aa9b56d1bfc79916262f380c3fc7961becb50
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/vdi.c

  Log Message:
  -----------
  vdi: say why an image is bad

Instead of just putting it in debugging output, we can now put the
value in an Error.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 7cc07ab8daa01f100f36ab63382d491f2d278c64
      
https://github.com/qemu/qemu/commit/7cc07ab8daa01f100f36ab63382d491f2d278c64
  Author: Kevin Wolf <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M include/qemu/option.h
    M util/qemu-option.c

  Log Message:
  -----------
  qemu-option: has_help_option() and is_valid_option_list()

has_help_option() checks if any help option ('help' or '?') occurs
anywhere in an option string, so that things like 'cluster_size=4k,help'
are recognised.

is_valid_option_list() ensures that the option list doesn't have options
with leading commas or trailing unescaped commas.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: 77386bf6ebe67164a2d102b207fb3bc11af8c1e8
      
https://github.com/qemu/qemu/commit/77386bf6ebe67164a2d102b207fb3bc11af8c1e8
  Author: Kevin Wolf <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img create: Support multiple -o options

If you specified multiple -o options for qemu-img create, it would
silently ignore all but the last one. This patch fixes the problem.

Now multiple -o options has the same meaning as having a single option
with all settings in the order of their respective -o options.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: 2dc8328b4c6aba60f4ad543186f4e8aec2e9287e
      
https://github.com/qemu/qemu/commit/2dc8328b4c6aba60f4ad543186f4e8aec2e9287e
  Author: Kevin Wolf <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img convert: Support multiple -o options

Instead of ignoring all option values but the last one, multiple -o
options now have the same meaning as having a single option with all
settings in the order of their respective -o options.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: 626f84f39d4ae365a44dbbc0d0dd3c7739c3971a
      
https://github.com/qemu/qemu/commit/626f84f39d4ae365a44dbbc0d0dd3c7739c3971a
  Author: Kevin Wolf <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img amend: Support multiple -o options

Instead of ignoring all option values but the last one, multiple -o
options now have the same meaning as having a single option with all
settings in the order of their respective -o options.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: a283cb6e58fca846c658360971d23fdd1129db65
      
https://github.com/qemu/qemu/commit/a283cb6e58fca846c658360971d23fdd1129db65
  Author: Kevin Wolf <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: Allow -o help with incomplete argument list

This patch allows using 'qemu-img $subcmd -o help' for the create,
convert and amend subcommands, without specifying the previously
required filename arguments.

Note that it's still allowed and meaningful to specify a filename: An
invocation like 'qemu-img create -o help sheepdog:foo' will also display
options that are provided by the Sheepdog driver.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: a33cc31d08eb46ec2a4f214087c99e4bd4c907e9
      
https://github.com/qemu/qemu/commit/a33cc31d08eb46ec2a4f214087c99e4bd4c907e9
  Author: Kevin Wolf <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    A tests/qemu-iotests/082
    A tests/qemu-iotests/082.out
    M tests/qemu-iotests/group

  Log Message:
  -----------
  qemu-iotests: Check qemu-img command line parsing

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: ae39c4b2015dd5ee35021d0f4212bb1304106524
      
https://github.com/qemu/qemu/commit/ae39c4b2015dd5ee35021d0f4212bb1304106524
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M util/qemu-config.c

  Log Message:
  -----------
  qemu-config: Sections must consist of keys

In config_parse_qdict_section(), the QList returned by
qdict_array_split() is assumed to only contain QDicts. Currently, this
is true but it may (and will) change in the future. Therefore, check
whether the assumption actually holds.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: bae3f92a016b8eddc0d5806c24baea3ecedac0a0
      
https://github.com/qemu/qemu/commit/bae3f92a016b8eddc0d5806c24baea3ecedac0a0
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M qobject/qdict.c

  Log Message:
  -----------
  qdict: Extract non-QDicts in qdict_array_split()

Currently, qdict_array_split() only splits off entries with a key prefix
of "%u.", packing them into a new QDict. This patch makes it support
entries with the plain key "%u" as well, directly putting them into the
new QList without creating a QDict.

If there is both an entry with a key of "%u" and other entries with keys
prefixed "%u." (for the same index), the function simply terminates.

To do this, this patch also adds a static function which tests whether a
given QDict contains any keys with the given prefix. This is used to test
whether entries with a key prefixed "%u." do exist in the source QDict
without modifying it.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 7841c768846dcfa5a162ff46a8e98429aa0d2238
      
https://github.com/qemu/qemu/commit/7841c768846dcfa5a162ff46a8e98429aa0d2238
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M tests/check-qdict.c

  Log Message:
  -----------
  check-qdict: Adjust test for qdict_array_split()

Test the new functionality of qdict_array_split(), that is, splitting
off single objects.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 64757582dafca9b0b3846677e368dd40bcd68b43
      
https://github.com/qemu/qemu/commit/64757582dafca9b0b3846677e368dd40bcd68b43
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M tests/check-qdict.c

  Log Message:
  -----------
  check-qdict: Test termination of qdict_array_split()

qdict_array_split() should terminate if it encounters both an entry with
a key of "%u" and entries with keys prefixed "%u." for the same index.

This patch adds a test for this case.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 27cec15e4ed4e69155f2499ceb46d22d8425102a
      
https://github.com/qemu/qemu/commit/27cec15e4ed4e69155f2499ceb46d22d8425102a
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/Makefile.objs
    A block/quorum.c

  Log Message:
  -----------
  quorum: Create quorum.c, add QuorumChildRequest and QuorumAIOCB.

Quorum is a block filter mirroring writes to num_children children.
For reads quorum reads each children and does a vote.
If more than vote_threshold versions are identical the quorum is reached and
this winning version is returned to the guest. So quorum prevents bit 
corruption.
For high availability purpose minority errors are reported via QMP but the guest
does not see them.

This patch creates the driver C source file and introduces the structures that
will be used in asynchronous reads and writes.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: cadebd7a2a590c2ac5ced58c2fc207c7ae78fb1b
      
https://github.com/qemu/qemu/commit/cadebd7a2a590c2ac5ced58c2fc207c7ae78fb1b
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: Create BDRVQuorumState and BlkDriver and do init.

Create the structure holding the quorum settings and write the minimal block
driver instanciation boilerplate.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 13e7956e3190b51f02e75374bb9dfdcacfd08829
      
https://github.com/qemu/qemu/commit/13e7956e3190b51f02e75374bb9dfdcacfd08829
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: Add quorum_aio_writev and its dependencies.

Writes are mirrored num_children times on num_children devices.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f70d7f7e4d05b7a7797815afdcb83f4375740838
      
https://github.com/qemu/qemu/commit/f70d7f7e4d05b7a7797815afdcb83f4375740838
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/blkverify.c
    M include/qemu-common.h
    M util/iov.c

  Log Message:
  -----------
  blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from blkverify.

qemu_iovec_compare() will be used to compare IOs vectors in quorum blkverify
mode. The patch extracts these functions in order to factorize the code.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 7db6982a19f61e3668397b5e31ebfb16a477c414
      
https://github.com/qemu/qemu/commit/7db6982a19f61e3668397b5e31ebfb16a477c414
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: Add quorum_aio_readv.

Add code to do num_children reads in parallel and cleanup the structures
afterwards.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 95c6bff3561eedaf7c7de287bc4a002720605a8d
      
https://github.com/qemu/qemu/commit/95c6bff3561eedaf7c7de287bc4a002720605a8d
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/Makefile.objs
    M block/quorum.c
    M configure
    M docs/qmp/qmp-events.txt
    M include/monitor/monitor.h
    M monitor.c

  Log Message:
  -----------
  quorum: Add quorum mechanism.

This patchset enables the core of the quorum mechanism.
The num_children reads are compared to get the majority version and if this
version exists more than threshold times the guest won't see the error at all.

If a block is corrupted or if an error occurs during an IO or if the quorum
cannot be established QMP events are used to report to the management.

Use gnutls's SHA-256 to compare versions.

--enable-quorum must be used to enable the feature.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: d55dee2044791a02394a3db7055cedac68dca26b
      
https://github.com/qemu/qemu/commit/d55dee2044791a02394a3db7055cedac68dca26b
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: Add quorum_getlength().

Check that every bs file returns the same length.
Otherwise, return -EIO to disable the quorum and
avoid length discrepancy.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: a28e4c408b28e4d55c5bd327a19290e1da3855dd
      
https://github.com/qemu/qemu/commit/a28e4c408b28e4d55c5bd327a19290e1da3855dd
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: Add quorum_invalidate_cache().

We really want that live migration works with quorum so implement
quorum_invalidate_cache().

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 1c508d174d4b9dfd066c3729a2560afeef5e081f
      
https://github.com/qemu/qemu/commit/1c508d174d4b9dfd066c3729a2560afeef5e081f
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: Add quorum_co_flush().

Makes a vote to select error if any.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 98a7a38f81af2b79a134eaa6cbed543aa3ca5fe2
      
https://github.com/qemu/qemu/commit/98a7a38f81af2b79a134eaa6cbed543aa3ca5fe2
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum.

This is used to activate quorum snapshot.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c88a1de51ab2f26a9a37ffc317249736de8c015c
      
https://github.com/qemu/qemu/commit/c88a1de51ab2f26a9a37ffc317249736de8c015c
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/quorum.c
    M monitor.c
    M qapi-schema.json

  Log Message:
  -----------
  quorum: Add quorum_open() and quorum_close().

Example of command line:

-drive if=virtio,driver=quorum,\
children.0.file.filename=1.raw,\
children.0.node-name=1.raw,\
children.0.driver=raw,\
children.1.file.filename=2.raw,\
children.1.node-name=2.raw,\
children.1.driver=raw,\
children.2.file.filename=3.raw,\
children.2.node-name=3.raw,\
children.2.driver=raw,\
vote-threshold=2

blkverify=on with vote-threshold=2 and two files can be passed to
emulate blkverify.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c7fc5bc2a4d89ccdb1ffabc720e7c87558c9aaef
      
https://github.com/qemu/qemu/commit/c7fc5bc2a4d89ccdb1ffabc720e7c87558c9aaef
  Author: Benoît Canet <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    A tests/qemu-iotests/081
    A tests/qemu-iotests/081.out
    M tests/qemu-iotests/group

  Log Message:
  -----------
  quorum: Add unit test.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 8a87f3d72279acb89f3d09b28d285d2fb6a7decf
      
https://github.com/qemu/qemu/commit/8a87f3d72279acb89f3d09b28d285d2fb6a7decf
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: Simplify quorum_open()

Although it may not look like it, this patch simplifies quorum_open().
qdict_array_split() is now able to return QLists with different objects
than only QDicts, therefore it will now do all the work and
quorum_open() does not have to handle reference strings by itself.

This allows mixing full option dicts and reference strings for
specifying the child block devices of quorum; furthermore, it improves
handling of malformed specifications.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 6141f3bd6904df7cf9519c6444a14a608b9874c4
      
https://github.com/qemu/qemu/commit/6141f3bd6904df7cf9519c6444a14a608b9874c4
  Author: Max Reitz <address@hidden>
  Date:   2014-02-21 (Fri, 21 Feb 2014)

  Changed paths:
    M tests/qemu-iotests/081
    M tests/qemu-iotests/081.out

  Log Message:
  -----------
  iotests: Mixed quorum child device specifications

Add a test case to test 081 for mixing full option dicts and reference
strings of specifying the quorum child block devices through QMP.

Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: e7a1d6c52a3ac6e76e5653c830b2545e0a4043d3
      
https://github.com/qemu/qemu/commit/e7a1d6c52a3ac6e76e5653c830b2545e0a4043d3
  Author: Peter Maydell <address@hidden>
  Date:   2014-02-25 (Tue, 25 Feb 2014)

  Changed paths:
    M block.c
    M block/Makefile.objs
    M block/blkdebug.c
    M block/blkverify.c
    M block/bochs.c
    M block/cow.c
    M block/curl.c
    M block/gluster.c
    M block/iscsi.c
    M block/nbd.c
    M block/parallels.c
    M block/qcow.c
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/qed.c
    A block/quorum.c
    M block/sheepdog.c
    M block/vdi.c
    M block/vhdx.c
    M block/vmdk.c
    M block/vpc.c
    M block/vvfat.c
    M blockdev.c
    M configure
    M docs/qmp/qmp-events.txt
    M hw/block/xen_disk.c
    M include/block/block.h
    M include/block/nbd.h
    M include/monitor/monitor.h
    M include/qemu-common.h
    M include/qemu/option.h
    M monitor.c
    M nbd.c
    M qapi-schema.json
    M qemu-img.c
    M qemu-io.c
    M qemu-nbd.c
    M qobject/qdict.c
    M tests/check-qdict.c
    M tests/qemu-iotests/046
    M tests/qemu-iotests/051.out
    M tests/qemu-iotests/059.out
    A tests/qemu-iotests/081
    A tests/qemu-iotests/081.out
    A tests/qemu-iotests/082
    A tests/qemu-iotests/082.out
    M tests/qemu-iotests/group
    M util/iov.c
    M util/qemu-config.c
    M util/qemu-option.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging

Block patches

# gpg: Signature made Fri 21 Feb 2014 21:42:24 GMT using RSA key ID C88F2FD6
# gpg: Good signature from "Kevin Wolf <address@hidden>"

* remotes/kevin/tags/for-upstream: (54 commits)
  iotests: Mixed quorum child device specifications
  quorum: Simplify quorum_open()
  quorum: Add unit test.
  quorum: Add quorum_open() and quorum_close().
  quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum.
  quorum: Add quorum_co_flush().
  quorum: Add quorum_invalidate_cache().
  quorum: Add quorum_getlength().
  quorum: Add quorum mechanism.
  quorum: Add quorum_aio_readv.
  blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from blkverify.
  quorum: Add quorum_aio_writev and its dependencies.
  quorum: Create BDRVQuorumState and BlkDriver and do init.
  quorum: Create quorum.c, add QuorumChildRequest and QuorumAIOCB.
  check-qdict: Test termination of qdict_array_split()
  check-qdict: Adjust test for qdict_array_split()
  qdict: Extract non-QDicts in qdict_array_split()
  qemu-config: Sections must consist of keys
  qemu-iotests: Check qemu-img command line parsing
  qemu-img: Allow -o help with incomplete argument list
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/c58e291591db...e7a1d6c52a3a

reply via email to

[Prev in Thread] Current Thread [Next in Thread]