qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] e04fb0: rbd: switch from pipe to QEMUBH compl


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] e04fb0: rbd: switch from pipe to QEMUBH completion notific...
Date: Fri, 24 Jan 2014 16:00:08 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: e04fb07fd1676e9facd7f3f878c1bbe03bccd26b
      
https://github.com/qemu/qemu/commit/e04fb07fd1676e9facd7f3f878c1bbe03bccd26b
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/rbd.c

  Log Message:
  -----------
  rbd: switch from pipe to QEMUBH completion notification

rbd callbacks are called from non-QEMU threads.  Up until now a pipe was
used to signal completion back to the QEMU iothread.

The pipe writer code handles EAGAIN using select(2).  The select(2) API
is not scalable since fd_set size is static.  FD_SET() can write beyond
the end of fd_set if the file descriptor number is too high.  (QEMU's
main loop uses poll(2) to avoid this issue with select(2).)

Since the pipe itself is quite clumsy to use and QEMUBH is now
thread-safe, just schedule a BH from the rbd callback function.  This
way we can simplify I/O completion in addition to eliminating the
potential FD_SET() crash when file descriptor numbers become too high.

Crash scenario: QEMU already has 1024 file descriptors open.  Hotplug an
rbd drive and get the pipe writer to take the select(2) code path.

Reviewed-by: Josh Durgin <address@hidden>
Tested-by: Josh Durgin <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2c77f52e39ff2ba071e3b549ad7a3ebea0758edd
      
https://github.com/qemu/qemu/commit/2c77f52e39ff2ba071e3b549ad7a3ebea0758edd
  Author: Fam Zheng <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M tests/qemu-iotests/common.rc

  Log Message:
  -----------
  qemu-iotests: Introduce _unsupported_imgopts

Introduce _unsupported_imgopts that causes _notrun for specific image
options.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: d2329f27c9c8408d4134c7243313dbaa37270384
      
https://github.com/qemu/qemu/commit/d2329f27c9c8408d4134c7243313dbaa37270384
  Author: Fam Zheng <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M tests/qemu-iotests/017
    M tests/qemu-iotests/018
    M tests/qemu-iotests/019
    M tests/qemu-iotests/020
    M tests/qemu-iotests/034
    M tests/qemu-iotests/037
    M tests/qemu-iotests/059
    M tests/qemu-iotests/063
    M tests/qemu-iotests/069

  Log Message:
  -----------
  qemu-iotests: Add _unsupported_imgopts for vmdk subformats

Some cases are not applicable for vmdk subformats those don't support
certain features, e.g. backing file, and some others can't run on
mult-file image, e.g. monolithicFlat. This adds declaration in test
cases to skip them automatically, so that iotests on vmdk can go
more smoothly (without manually picking of cases for each subformat).

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 487c1910023c83fa6d550a50c8ad7ee730e60bfa
      
https://github.com/qemu/qemu/commit/487c1910023c83fa6d550a50c8ad7ee730e60bfa
  Author: Fam Zheng <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M tests/qemu-iotests/common.rc

  Log Message:
  -----------
  qemu-iotests: Clean up all extents for vmdk

This modifies _cleanup_test_img to remove all the extent files listed by
"qemu-img info"'s format specific information.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 92397116a6789ed4455c6dacea0f378cae096d8d
      
https://github.com/qemu/qemu/commit/92397116a6789ed4455c6dacea0f378cae096d8d
  Author: Peter Lieven <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  block/iscsi: return -ENOMEM if an async call fails immediately

if an async libiscsi call fails directly it can only be due
to an out of memory condition. All other errors are returned
through the callback.

Signed-off-by: Peter Lieven <address@hidden>
Reviewed-by: Ronnie Sahlberg <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 15744b0b8f63d624bdd5825011cd201541a62094
      
https://github.com/qemu/qemu/commit/15744b0b8f63d624bdd5825011cd201541a62094
  Author: Bharata B Rao <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  gluster: Convert aio routines into coroutines

Convert the read, write, flush and discard implementations from aio-based
ones to coroutine based ones.

Signed-off-by: Bharata B Rao <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 7c815372f3b37754b2a568e82f0521c7f77a6f66
      
https://github.com/qemu/qemu/commit/7c815372f3b37754b2a568e82f0521c7f77a6f66
  Author: Bharata B Rao <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/gluster.c
    M configure

  Log Message:
  -----------
  gluster: Implement .bdrv_co_write_zeroes for gluster

Support .bdrv_co_write_zeroes() from gluster driver by using GlusterFS API
glfs_zerofill() that off-loads the writing of zeroes to GlusterFS server.

Signed-off-by: Bharata B Rao <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: cf7f616b9d846b1cc21c7b692b5c9ff6f757a5e7
      
https://github.com/qemu/qemu/commit/cf7f616b9d846b1cc21c7b692b5c9ff6f757a5e7
  Author: Bharata B Rao <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  gluster: Add support for creating zero-filled image

GlusterFS supports creation of zero-filled file on GlusterFS volume
by means of an API called glfs_zerofill(). Use this API from QEMU to
create an image that is filled with zeroes by using the preallocation
option of qemu-img.

qemu-img create gluster://server/volume/image -o preallocation=full 10G

The allowed values for preallocation are 'full' and 'off'. By default
preallocation is off and image is not zero-filled.

glfs_zerofill() offloads the writing of zeroes to the server and if
the storage supports SCSI WRITESAME, GlusterFS server can issue
BLKZEROOUT ioctl to achieve the zeroing.

Signed-off-by: Bharata B Rao <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 9f23fce7b2e78b917f03ccd366e3e151c0a1a419
      
https://github.com/qemu/qemu/commit/9f23fce7b2e78b917f03ccd366e3e151c0a1a419
  Author: Liu Yuan <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/sheepdog.c

  Log Message:
  -----------
  sheepdog: fix clone operation by 'qemu-img create -b'

We should pass base_inode->vdi_id to base_vdi_id of SheepdogVdiReq so that sheep
can create a clone instead a fresh volume.

This fixes following command:

qemu-create -b sheepdog:base sheepdog:clone

so users can boot sheepdog:clone as a normal volume.

Cc: address@hidden
Cc: Kevin Wolf <address@hidden>
Cc: Stefan Hajnoczi <address@hidden>
Signed-off-by: Liu Yuan <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: b7fcff01790d25f48d81ef6c8c3399577096a555
      
https://github.com/qemu/qemu/commit/b7fcff01790d25f48d81ef6c8c3399577096a555
  Author: Kewei Yu <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M tests/fdc-test.c
    M tests/ide-test.c

  Log Message:
  -----------
  qtest: Fix the bug about disable vnc causes "make check" fail

When we disable vnc from "./configure", QEMU can't use the vnc option.
So qtest can't use the "vnc -none ", otherwise "make check" fails.
If QEMU uses "-display none", "-vnc none" is excrescent, So we just need to 
drop it.

Signed-off-by: Kewei Yu <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 7fa9e1f941b4be1f71bb42de2f2ed8805d7e7326
      
https://github.com/qemu/qemu/commit/7fa9e1f941b4be1f71bb42de2f2ed8805d7e7326
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M qemu-doc.texi
    M qemu-img.texi

  Log Message:
  -----------
  docs: qcow2 compat=1.1 is now the default

Commit 9117b47717ad208b12786ce88eacb013f9b3dd1c ("qcow2: Change default
for new images to compat=1.1") changed the default qcow2 image format
version but forgot to update qemu-doc.texi and qemu-img.texi.

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


  Commit: 585ea0c841df47c1542d33e17c5c6d532316ef74
      
https://github.com/qemu/qemu/commit/585ea0c841df47c1542d33e17c5c6d532316ef74
  Author: Fam Zheng <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

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

  Log Message:
  -----------
  vmdk: Fix big flat extent IO

Local variable "n" as int64_t avoids overflow with large sector number
calculation. See test case change for failure case.

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


  Commit: c60bf3391bf4cb79b7adc6650094e21671ddaabd
      
https://github.com/qemu/qemu/commit/c60bf3391bf4cb79b7adc6650094e21671ddaabd
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M hmp.c
    M include/monitor/readline.h
    M monitor.c
    M readline.c

  Log Message:
  -----------
  readline: decouple readline from the monitor

Make the readline.c functionality reusable.  Instead of calling
monitor_printf() and monitor_flush() directly, invoke function pointers
provided by the user.

This way readline.c does not know about Monitor and other users will be
able to make use of readline.c.

Note that there is already an "opaque" argument to the ReadLineFunc
callback.  Consistently call it "readline_opaque" from now on to
distinguish from the ReadLinePrintfFunc/ReadLineFlushFunc "opaque"
argument.

I also dropped the printf macro trickery since it's now highly unlikely
that anyone modifying readline.c would call printf(3) directly.  We no
longer need this protection.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 0150cd81cf608b93778a067189829f354fe27e4b
      
https://github.com/qemu/qemu/commit/0150cd81cf608b93778a067189829f354fe27e4b
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M Makefile.objs
    M include/monitor/monitor.h
    R include/monitor/readline.h
    A include/qemu/readline.h
    M monitor.c
    R readline.c
    M util/Makefile.objs
    A util/readline.c

  Log Message:
  -----------
  readline: move readline to a generic location

Now that the monitor and readline are decoupled, readline.h no longer
belongs in include/monitor/.  Put the header into include/qemu/.

Move the source file into util/ so it can be linked as part of
libqemuutil.a.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 13401ba0b982024b62a99388032bbb889dc98b43
      
https://github.com/qemu/qemu/commit/13401ba0b982024b62a99388032bbb889dc98b43
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M include/qemu/osdep.h
    M util/oslib-posix.c
    M util/oslib-win32.c

  Log Message:
  -----------
  osdep: add qemu_set_tty_echo()

Using stdin with readline.c requires disabling echo and line buffering.
Add a portable wrapper to set the terminal attributes under Linux and
Windows.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 0cf17e181798063c3824c8200ba46f25f54faa1a
      
https://github.com/qemu/qemu/commit/0cf17e181798063c3824c8200ba46f25f54faa1a
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M qemu-io.c

  Log Message:
  -----------
  qemu-io: use readline.c

Use readline.c for command-line history.  There was support for GNU
Readline and BSD Editline but it was never compiled in.  Since QEMU has
its own readline.c, just use that when qemu-io runs with stdin attached
to a terminal.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 4694020d3c0d21f02408d5cc6f44b8fb55b4ee15
      
https://github.com/qemu/qemu/commit/4694020d3c0d21f02408d5cc6f44b8fb55b4ee15
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M include/qemu-io.h
    M qemu-io-cmds.c
    M qemu-io.c

  Log Message:
  -----------
  qemu-io: add command completion

Autocomplete qemu-io commands at the interactive prompt.

Note this only completes command names and not their options.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 466b49f276310952ad64485d8b9fa87a5c8a9451
      
https://github.com/qemu/qemu/commit/466b49f276310952ad64485d8b9fa87a5c8a9451
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/blkdebug.c

  Log Message:
  -----------
  blkdebug: Use errp for read_config()

Use an Error variable in the read_config() function.

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


  Commit: d4881b9bcbbadc83ffa5d8e6d2d6deb36cd8faa6
      
https://github.com/qemu/qemu/commit/d4881b9bcbbadc83ffa5d8e6d2d6deb36cd8faa6
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/blkdebug.c

  Log Message:
  -----------
  blkdebug: Don't require sophisticated filename

If the filename is not prefixed by "blkdebug:" in
blkdebug_parse_filename(), the blkdebug driver was not selected through
that protocol prefix, but by an explicit command line option
(file.driver=blkdebug or something similar). Contrary to the current
reaction, this is not a problem at all; we just need to store the
filename (in the x-image option) and can go on; the user just has to
manually specify the config option.

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


  Commit: 05a8c2227157eda2540404999c4615d3bf343c18
      
https://github.com/qemu/qemu/commit/05a8c2227157eda2540404999c4615d3bf343c18
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M include/qapi/qmp/qdict.h
    M qobject/qdict.c

  Log Message:
  -----------
  qdict: Add qdict_array_split()

This function splits a QDict consisting of entries prefixed by
incrementally enumerated indices into a QList of QDicts.

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


  Commit: 9f23fc0c23ab16e9c16b41ed300786924f7a7768
      
https://github.com/qemu/qemu/commit/9f23fc0c23ab16e9c16b41ed300786924f7a7768
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M qobject/qdict.c

  Log Message:
  -----------
  qapi: extend qdict_flatten() for QLists

Reversing qdict_array_split(), qdict_flatten() should flatten QLists as
well by interpreting them as QDicts where every entry's key is its
index.

This allows bringing QDicts with QLists from QMP commands to the same
form as they would be given as command-line options, thereby allowing
them to be parsed the same way.

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


  Commit: adf5c449e5beb163999e4ba7366d5f9aebb504a1
      
https://github.com/qemu/qemu/commit/adf5c449e5beb163999e4ba7366d5f9aebb504a1
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

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

  Log Message:
  -----------
  qemu-option: Add qemu_config_parse_qdict()

This function basically parses command-line options given as a QDict
replacing a config file.

For instance, the QDict {"section.opt1": 42, "section.opt2": 23}
corresponds to the config file:

[section]
opt1 = 42
opt2 = 23

It is possible to specify multiple sections and also multiple sections
of the same type. On the command line, this looks like the following:

inject-error.0.event=reftable_load,\
inject-error.1.event=l2_load,\
set-state.event=l1_update

This would correspond to the following config file:

[inject-error "inject-error.0"]
event = reftable_load

[inject-error "inject-error.1"]
event = l2_load

[set-state]
event = l1_update

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


  Commit: 85a040e5485413333da4fcf98bc8b28c92fa623f
      
https://github.com/qemu/qemu/commit/85a040e5485413333da4fcf98bc8b28c92fa623f
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/blkdebug.c

  Log Message:
  -----------
  blkdebug: Always call read_config()

Move the check whether there actually is a config file into the
read_config() function.

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


  Commit: 89f2b21e36cce948c39fa7cf24226f6e5f042cc8
      
https://github.com/qemu/qemu/commit/89f2b21e36cce948c39fa7cf24226f6e5f042cc8
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/blkdebug.c

  Log Message:
  -----------
  blkdebug: Use command-line in read_config()

Use qemu_config_parse_qdict() to parse the command-line options in
addition to the config file.

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


  Commit: 72daa72eeecb6b2ee06ab7d836ac3aa01ad7e6df
      
https://github.com/qemu/qemu/commit/72daa72eeecb6b2ee06ab7d836ac3aa01ad7e6df
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block.c
    M block/blkdebug.c
    M block/blkverify.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: Allow reference for bdrv_file_open()

Allow specifying a reference to an existing block device (by name) for
bdrv_file_open() instead of a filename and/or options.

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


  Commit: 2258e3fe20990a13c9aa2c1adccafae073b7ce13
      
https://github.com/qemu/qemu/commit/2258e3fe20990a13c9aa2c1adccafae073b7ce13
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Pass reference to bdrv_file_open()

With that now being possible, bdrv_open() should try to extract a block
device reference from the options and pass it to bdrv_file_open().

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


  Commit: 2a05cbe426a7a3ddec63dbc67c9ac93013aebf77
      
https://github.com/qemu/qemu/commit/2a05cbe426a7a3ddec63dbc67c9ac93013aebf77
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Allow block devices without files

blkdebug and blkverify will, in order to retain compatibility, not
support the field "file" implicitly through bdrv_open(). In order to be
able to use those drivers without giving a filename anyway, it is
necessary to be able to have block devices without files implicitly
opened by bdrv_open(). This is the case, if there was neither a file
name, a reference to an existing block device to use as a file nor
options specific to the file.

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


  Commit: da557aac181fa71fde6a2a7c7a1eb2aea20caf64
      
https://github.com/qemu/qemu/commit/da557aac181fa71fde6a2a7c7a1eb2aea20caf64
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

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

  Log Message:
  -----------
  block: Add bdrv_open_image()

Add a common function for opening images to be used for block drivers
specified through BlockdevRefs in an option QDict. The difference from
bdrv_file_open() is that this function may invoke bdrv_open() instead,
allowing auto-detection of the driver to be used; and second, it
automatically extracts the BlockdevRef from the option QDict.

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


  Commit: 054963f8f082695ecb1f169024c83ce3e4eea3d8
      
https://github.com/qemu/qemu/commit/054963f8f082695ecb1f169024c83ce3e4eea3d8
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Use bdrv_open_image() in bdrv_open()

Using bdrv_open_image() instead of bdrv_file_open() directly in
bdrv_open() is easier.

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


  Commit: 505d758334afcee07eb40aa1b33f2353c612c8ec
      
https://github.com/qemu/qemu/commit/505d758334afcee07eb40aa1b33f2353c612c8ec
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

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

  Log Message:
  -----------
  block: Allow recursive "file"s

It should be possible to use a format as a driver for a file which in
turn requires another file, i.e., nesting file formats.

Allowing nested file formats results in e.g. qcow2 BlockDriverStates
never being directly passed to bdrv_open_common() from bdrv_file_open(),
but instead being handed through bdrv_open(). This changes the error
message when trying to give a filename to qcow2, i.e. trying to use it
as a driver for the protocol level. Therefore, change the reference
output of I/O test 051 accordingly.

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


  Commit: d095b465339b79929fd2adc25c0ab3598e80fd39
      
https://github.com/qemu/qemu/commit/d095b465339b79929fd2adc25c0ab3598e80fd39
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  blockdev: Move "file" to legacy_opts

Specifying the image filename through the "file" option is a legacy
option and should not be supported by blockdev-add (in that case, giving
a string for "file" references an existing block device).

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


  Commit: 4373593d5111a8ed3b6d47ad4a458ee28ec942e3
      
https://github.com/qemu/qemu/commit/4373593d5111a8ed3b6d47ad4a458ee28ec942e3
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/blkdebug.c

  Log Message:
  -----------
  blkdebug: Allow command-line file configuration

Introduce the "image" option as an alternative to specifying the image
through the filename.

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


  Commit: 70b6198acc9643c3ce801e5cf4c24274722f2f4a
      
https://github.com/qemu/qemu/commit/70b6198acc9643c3ce801e5cf4c24274722f2f4a
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/blkverify.c

  Log Message:
  -----------
  blkverify: Allow command-line configuration

Introduce the "test" and "raw" options for specifying images.

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


  Commit: 22511ad681348cc4e500ebafdc324b0909d41c95
      
https://github.com/qemu/qemu/commit/22511ad681348cc4e500ebafdc324b0909d41c95
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block/blkverify.c

  Log Message:
  -----------
  blkverify: Don't require protocol filename

If the filename is not prefixed by "blkverify:" in
blkverify_parse_filename(), the blkverify driver was not selected
through that protocol prefix, but by an explicit command line (or QMP)
option (like driver=blkverify).

If blkverify_parse_filename() has been called, a filename has been
given. If it is not prefixed, it is probably really just a plain
filename. This is no problem, since we can use it as the test image
filename and rely on the user to specify the raw image filename through
the new corresponding option.

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


  Commit: 8592a545b61b99114a86ee7cecef7a5f284d1b6c
      
https://github.com/qemu/qemu/commit/8592a545b61b99114a86ee7cecef7a5f284d1b6c
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Add "errno" to the list of polluted words

Using "errno" directly as an identifier results in various syntax
errors; therefore it should be added to the list of polluted words.

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


  Commit: 1bf20b8280186299c750018bbfa3b52f4afd71ea
      
https://github.com/qemu/qemu/commit/1bf20b8280186299c750018bbfa3b52f4afd71ea
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M qapi-schema.json

  Log Message:
  -----------
  qapi: QMP interface for blkdebug and blkverify

Add structures to support blkdebug and blkverify in blockdev-add.

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


  Commit: fd0fee34b5ae7699dc558c12ddc3663bdb580060
      
https://github.com/qemu/qemu/commit/fd0fee34b5ae7699dc558c12ddc3663bdb580060
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M qemu-io.c

  Log Message:
  -----------
  qemu-io: Make filename optional

Giving a filename is actually not essential, since it can be specified
through the options as well - on the contrary: Sometimes a filename must
not be given.

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


  Commit: be331341a1f35c2de2fcc05cc78e0342d2edeb8a
      
https://github.com/qemu/qemu/commit/be331341a1f35c2de2fcc05cc78e0342d2edeb8a
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M tests/check-qdict.c

  Log Message:
  -----------
  tests: Add test for qdict_array_split()

Add a test case for qdict_array_split() in tests/check-qdict.c.

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


  Commit: 3fb11779ca5f1d601adeb5870ba79e61e81a4cce
      
https://github.com/qemu/qemu/commit/3fb11779ca5f1d601adeb5870ba79e61e81a4cce
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M tests/check-qdict.c

  Log Message:
  -----------
  tests: Add test for qdict_flatten()

Add a test case for qdict_flatten() in tests/check-qdict.c. This test
case covers the flattening of subordinate QLists as well.

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


  Commit: 30bd6a4dafe2f79909451ef5769561c9a9d3eaca
      
https://github.com/qemu/qemu/commit/30bd6a4dafe2f79909451ef5769561c9a9d3eaca
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

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

  Log Message:
  -----------
  iotests: Test new blkdebug/blkverify interface

Add a test for the new blkdebug/blkverify interface.

This test is not written in Python, although it uses QMP. This is
because it invokes the qemu-io HMP command, which outputs errors to
stderr instead of returning them through QMP. Filtering and testing that
output is easier in a shell script than with the Python infrastructure.

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


  Commit: 91f84f652de14329d5ad0666499a78fd0db0f1c7
      
https://github.com/qemu/qemu/commit/91f84f652de14329d5ad0666499a78fd0db0f1c7
  Author: Max Reitz <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

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

  Log Message:
  -----------
  iotests: Test file format nesting

Add a test for nested image formats.

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


  Commit: d80ac658f2caacfb14ea386211c4a9bea0cea280
      
https://github.com/qemu/qemu/commit/d80ac658f2caacfb14ea386211c4a9bea0cea280
  Author: Peter Feiner <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: fix backing file segfault

When a backing file is opened such that (1) a protocol is directly
used as the block driver and (2) the block driver has bdrv_file_open,
bdrv_open_backing_file segfaults. The problem arises because
bdrv_open_common returns without setting bd->backing_hd->file.

To effect (1), you seem to have to use the -F flag in qemu-img. There
are several block drivers that satisfy (2), such as "file" and "nbd".
Here are some concrete examples:

    #!/bin/bash

    echo Test file format
    ./qemu-img create -f file base.file 1m
    ./qemu-img create -f qcow2 -F file -o backing_file=base.file\
  file-overlay.qcow2
    ./qemu-img convert -O raw file-overlay.qcow2 file-convert.raw

    echo Test nbd format
    SOCK=$PWD/nbd.sock
    ./qemu-img create -f raw base.raw 1m
    ./qemu-nbd -t -k $SOCK base.raw &
    trap "kill $!" EXIT
    while ! test -e $SOCK; do sleep 1; done
    ./qemu-img create -f qcow2 -F nbd -o backing_file=nbd:unix:$SOCK\
  nbd-overlay.qcow2
    ./qemu-img convert -O raw nbd-overlay.qcow2 nbd-convert.raw

Without this patch, the two qemu-img convert commands segfault.

This is a regression that was introduced in v1.7 by
dbecebddfa4932d1c83915bcb9b5ba5984eb91be.

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


  Commit: 385c04d0b66917457b6a12fc2cfd99a6a40b2d89
      
https://github.com/qemu/qemu/commit/385c04d0b66917457b6a12fc2cfd99a6a40b2d89
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2014-01-22 (Wed, 22 Jan 2014)

  Changed paths:
    M hw/virtio/dataplane/vring.c

  Log Message:
  -----------
  dataplane: fix shadowed return value

Propagate the error return value from get_indirect().  This bug was
introduced in commit 4d684832 ("vring: create a common function to parse
descriptors").

Reviewed-by: Markus Armbruster <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 46bae927134468d27f5e2508c3ced67ff58fa45b
      
https://github.com/qemu/qemu/commit/46bae927134468d27f5e2508c3ced67ff58fa45b
  Author: Hu Tao <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block/qcow2.h

  Log Message:
  -----------
  qcow2: fix wrong value of L1E_OFFSET_MASK, L2E_OFFSET_MASK and 
REFT_OFFSET_MASK

Accoring to qcow spec, the offset fields in l1e, l2e and ref table entry
start at bit 9. The offset is cluster offset, and the smallest possible
cluster size is 512 bytes.

Signed-off-by: Hu Tao <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 34ceed81f9ca31829448276dafe3d9151d66962c
      
https://github.com/qemu/qemu/commit/34ceed81f9ca31829448276dafe3d9151d66962c
  Author: Fam Zheng <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  vmdk: Check for overhead when opening

Report an error if file size is even smaller than metadata.

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


  Commit: e69968d472bd020a08c677c814237548090d2e59
      
https://github.com/qemu/qemu/commit/e69968d472bd020a08c677c814237548090d2e59
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M util/qemu-progress.c

  Log Message:
  -----------
  qemu-progress: Drop unused include

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


  Commit: 3c4b4e383e82ab3db307ee01f12ab0d4a28584dc
      
https://github.com/qemu/qemu/commit/3c4b4e383e82ab3db307ee01f12ab0d4a28584dc
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M util/qemu-progress.c

  Log Message:
  -----------
  qemu-progress: Fix progress printing on SIGUSR1

Since commit a7aae221 ('Switch SIG_IPI to SIGUSR1'), SIGUSR1 is blocked
during startup, breaking the progress report in tools.

This patch reenables the signal when initialising a progress report.

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


  Commit: 0e3bd9932f862c1c1e4926939b4d0c602ce214ef
      
https://github.com/qemu/qemu/commit/0e3bd9932f862c1c1e4926939b4d0c602ce214ef
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M qemu-img.texi

  Log Message:
  -----------
  Documentation: qemu-img: Mention SIGUSR1 progress report

Document the SIGUSR1 behaviour of qemu-img. Also, added compare to the
list of subcommands that support -p.

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


  Commit: 9cd767376f137918dbe90abb452dfe119ae7d8f3
      
https://github.com/qemu/qemu/commit/9cd767376f137918dbe90abb452dfe119ae7d8f3
  Author: Liu Yuan <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block/sheepdog.c

  Log Message:
  -----------
  sheepdog: fix 'qemu-img map'

It was muted in the previous commit 4bc74be9. Let's revive it since nothing
prevents us to do it.

With this patch, following command will work as other formats:

$ qemu-img map sheepdog:image

Cc: address@hidden
Cc: Kevin Wolf <address@hidden>
Cc: Stefan Hajnoczi <address@hidden>
Signed-off-by: Liu Yuan <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 6df3bf8eb3ed428015c85cfbd554ac9b32164f40
      
https://github.com/qemu/qemu/commit/6df3bf8eb3ed428015c85cfbd554ac9b32164f40
  Author: Zhang Min <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block/mirror.c

  Log Message:
  -----------
  drive mirror:fix memory leak

In the function mirror_iteration() -> qemu_iovec_init(),
it allocates memory for op->qiov.iov, when the write request calls back,
but in the function mirror_iteration_done(), it only frees the op,
not free the op->qiov.iov, so this causes memory leak.

It should use qemu_iovec_destroy() to free op->qiov.

Signed-off-by: Zhang Min <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: d8a7b061ae01e5692cc994f05ad6480d8c170125
      
https://github.com/qemu/qemu/commit/d8a7b061ae01e5692cc994f05ad6480d8c170125
  Author: Fam Zheng <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: Fix format specific information (create type) for streamOptimized

Previously the field is wrong:

    $ ./qemu-img create -f vmdk -o subformat=streamOptimized /tmp/a.vmdk 1G

    $ ./qemu-img info /tmp/a.vmdk
    image: /tmp/a.vmdk
    file format: vmdk
    virtual size: 1.0G (1073741824 bytes)
    disk size: 12K
    Format specific information:
  cid: 1390460459
  parent cid: 4294967295
>>>     create type: monolithicSparse
  <snip>

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


  Commit: c8059b97e1f9b4635b836ee98373a0f72f9fc0b4
      
https://github.com/qemu/qemu/commit/c8059b97e1f9b4635b836ee98373a0f72f9fc0b4
  Author: Fam Zheng <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  qapi: Add "backing" to BlockStats

Currently there is no way to query BlockStats of the backing chain. This
adds "backing" field into BlockStats to make it possible.

The comment of "parent" is reworded.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: dc364f4cdca0c49e37376b16c3ee0bf3b4a96f4c
      
https://github.com/qemu/qemu/commit/dc364f4cdca0c49e37376b16c3ee0bf3b4a96f4c
  Author: Benoît Canet <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  block: Add bs->node_name to hold the name of a bs node of the bs graph.

Add the minimum of code to prepare for the following patches.

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


  Commit: 6913c0c2ce00c0e886b2bd20b05073090fa5308a
      
https://github.com/qemu/qemu/commit/6913c0c2ce00c0e886b2bd20b05073090fa5308a
  Author: Benoît Canet <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c
    M qapi-schema.json

  Log Message:
  -----------
  block: Allow the user to define "node-name" option both on command line and 
QMP.

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


  Commit: c13163fba151f0be5176eaf55907bc1dbff3a1d4
      
https://github.com/qemu/qemu/commit/c13163fba151f0be5176eaf55907bc1dbff3a1d4
  Author: Benoît Canet <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c
    M block/qapi.c
    M blockdev.c
    M include/block/block.h
    M include/block/qapi.h
    M qapi-schema.json
    M qmp-commands.hx

  Log Message:
  -----------
  qmp: Add QMP query-named-block-nodes to list the named BlockDriverState nodes.

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


  Commit: 12d3ba821da9f8a039240a8a1bc01e27a12f9c22
      
https://github.com/qemu/qemu/commit/12d3ba821da9f8a039240a8a1bc01e27a12f9c22
  Author: Benoît Canet <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c
    M blockdev.c
    M hmp.c
    M include/block/block.h
    M qapi-schema.json
    M qmp-commands.hx

  Log Message:
  -----------
  qmp: Allow to change password on named block driver states.

Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>

There was two candidate ways to implement named node manipulation:

1)
{ 'command': 'block_passwd', 'data': {'*device': 'str',
                                '*node-name': 'str', 'password': 'str'}
}

2)

{ 'command': 'block_passwd', 'data': {'device': 'str',
                                '*device-is-node': 'bool',
                                'password': 'str'} }

Luiz proposed 1 and says 2 was an abuse of the QMP interface and proposed to
rewrite the QMP block interface for 2.0.

Luiz does not like in 1 the fact that 2 fields are optional but one of them must
be specified leading to an abuse of the QMP semantic.

Kevin argumented that 2 what a clear abuse of the device field and would not be
practical when reading fast some log file because the user would read "device"
and think that a device is manipulated when it's in fact a node name.
Documentation of 1 make it pretty clear what to do for the user.

Kevin argued that all bs are node including devices ones so 2 does not make
sense.

Kevin also argued that rewriting the QMP block interface would not make disapear
the current one.

Kevin pushed the argument that making the QAPI generator compatible with the
semantic of the operation would need a rewrite that no one has done yet.

A vote has been done on the list to elect the version to use and 1 won.

For reference the complete thread is:
"[Qemu-devel] [PATCH V4 4/7] qmp: Allow to change password on names block driver
states."

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


  Commit: 212a5a8f095de9a1624de6b4a589d60688b02747
      
https://github.com/qemu/qemu/commit/212a5a8f095de9a1624de6b4a589d60688b02747
  Author: Benoît Canet <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c
    M block/blkverify.c
    M blockdev.c
    M include/block/block.h
    M include/block/block_int.h

  Log Message:
  -----------
  block: Create authorizations mechanism for external snapshot and resize.

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


  Commit: 3b1dbd11a60d75e99af5fc9b73c34f4af9d4f510
      
https://github.com/qemu/qemu/commit/3b1dbd11a60d75e99af5fc9b73c34f4af9d4f510
  Author: Benoît Canet <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M blockdev.c
    M hmp.c
    M qapi-schema.json
    M qmp-commands.hx

  Log Message:
  -----------
  qmp: Allow block_resize to manipulate bs graph nodes.

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


  Commit: 0901f67ecdb74d9ba1451e3b4367194cd43f96b4
      
https://github.com/qemu/qemu/commit/0901f67ecdb74d9ba1451e3b4367194cd43f96b4
  Author: Benoît Canet <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M blockdev.c
    M hmp.c
    M qapi-schema.json
    M qmp-commands.hx

  Log Message:
  -----------
  qmp: Allow to take external snapshots on bs graphs node.

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


  Commit: 031fd1be5618c347f9aeb44ec294f14a541e42b2
      
https://github.com/qemu/qemu/commit/031fd1be5618c347f9aeb44ec294f14a541e42b2
  Author: Peter Maydell <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block/curl.c

  Log Message:
  -----------
  block/curl: Implement the libcurl timer callback interface

libcurl versions 7.16.0 and later have a timer callback interface which
must be implemented in order for libcurl to make forward progress (it
will sometimes rely on being called back on the timeout if there are
no file descriptors registered). Implement the callback, and use a
QEMU AIO timer to ensure we prod libcurl again when it asks us to.

Based on Peter's original patch plus my fix to add curl_multi_timeout_do.
Should compile just fine even on older versions of libcurl.

I also tried copy-on-read and streaming:

    $ ./qemu-img create -f qcow2 -o \
   
backing_file=http://download.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso
 \
   foo.qcow2 1G
    $ x86_64-softmmu/qemu-system-x86_64 \
   -drive if=none,file=foo.qcow2,copy-on-read=on,id=cd \
   -device ide-cd,drive=cd --enable-kvm -m 1024

Direct http usage is probably too slow, but with copy-on-read ultimately
the image does boot!

After some time, streaming gets canceled by an EIO, which needs further
investigation.

Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 72706ea4cd38bfcb151265df0178ba21863d7518
      
https://github.com/qemu/qemu/commit/72706ea4cd38bfcb151265df0178ba21863d7518
  Author: Jeff Cody <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: resize backing file image during offline commit, if necessary

Currently, if an image file is logically larger than its backing file,
committing it via 'qemu-img commit' will fail.

For instance, if we have a base image with a virtual size 10G, and a
snapshot image of size 20G, then committing the snapshot offline with
'qemu-img commit' will likely fail.

This will automatically attempt to resize the base image, if the
snapshot image to be committed is larger.

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


  Commit: 4da83585961631bfc10831dd26c4afda2a8b23e8
      
https://github.com/qemu/qemu/commit/4da83585961631bfc10831dd26c4afda2a8b23e8
  Author: Jeff Cody <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block/mirror.c

  Log Message:
  -----------
  block: resize backing image during active layer commit, if needed

If the top image to commit is the active layer, and also larger than
the base image, then an I/O error will likely be returned during
block-commit.

For instance, if we have a base image with a virtual size 10G, and a
active layer image of size 20G, then committing the snapshot via
'block-commit' will likely fail.

This will automatically attempt to resize the base image, if the
active layer image to be committed is larger.

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


  Commit: 37222900743962e146a82b7077a18c3f39859a19
      
https://github.com/qemu/qemu/commit/37222900743962e146a82b7077a18c3f39859a19
  Author: Jeff Cody <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M hmp-commands.hx
    M qapi-schema.json
    M qemu-img.texi
    M qmp-commands.hx

  Log Message:
  -----------
  block: update block commit documentation regarding image truncation

This updates the documentation for commiting snapshot images.
Specifically, this highlights what happens when the base image
is either smaller or larger than the snapshot image being committed.

In the case of the base image being smaller, it is resized to the
larger size of the snapshot image.  In the case of the base image
being larger, it is not resized automatically, but once the commit
has completed it is safe for the user to truncate the base image.

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


  Commit: dabfa6cc2e2a06269026fcb42772894f67bd0c3e
      
https://github.com/qemu/qemu/commit/dabfa6cc2e2a06269026fcb42772894f67bd0c3e
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Fix bdrv_commit return value

bdrv_commit() could return 0 or 1 on success, depending on whether or
not the last sector was allocated in the overlay and whether the overlay
format had a .bdrv_make_empty callback.

Most callers ignored it, but qemu-img commit would print an error
message while the operation actually succeeded.

Also clean up the handling of I/O errors to return the real error code
instead of -EIO.

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


  Commit: d34682cd4a06efe9ee3fc8cb7e8a0ea445299989
      
https://github.com/qemu/qemu/commit/d34682cd4a06efe9ee3fc8cb7e8a0ea445299989
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c
    M block/iscsi.c
    M block/qcow2.c
    M block/qed.c
    M block/vmdk.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Move initialisation of BlockLimits to bdrv_refresh_limits()

This function separates filling the BlockLimits from bdrv_open(), which
allows it to call it from other operations which may change the limits
(e.g. modifications to the backing file chain or bdrv_reopen)

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


  Commit: 466ad822deef3a03757d505218a52993c5d56b5d
      
https://github.com/qemu/qemu/commit/466ad822deef3a03757d505218a52993c5d56b5d
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Inherit opt_transfer_length

When there is a format driver between the backend, it's not guaranteed
that exposing the opt_transfer_length for the format driver results in
the optimal requests (because of fragmentation etc.), but it can't make
things worse, so let's just do it.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Wenchao Xia <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Reviewed-by: Benoît Canet <address@hidden>


  Commit: 355ef4ac95a7a47d5c7201ccd910056a100d2fdf
      
https://github.com/qemu/qemu/commit/355ef4ac95a7a47d5c7201ccd910056a100d2fdf
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  block: Update BlockLimits when they might have changed

When reopening with different flags, or when backing files disappear
from the chain, the limits may change. Make sure they get updated in
these cases.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Wenchao Xia <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Reviewed-by: Benoît Canet <address@hidden>


  Commit: e5354657a626b325c31888f33de88ac6d39e2fcb
      
https://github.com/qemu/qemu/commit/e5354657a626b325c31888f33de88ac6d39e2fcb
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M util/oslib-posix.c

  Log Message:
  -----------
  qemu_memalign: Allow small alignments

The functions used by qemu_memalign() require an alignment that is at
least sizeof(void*). Adjust it if it is too small.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Wenchao Xia <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Reviewed-by: Benoît Canet <address@hidden>


  Commit: 1ff735bdc417945bc6df1857861b127644b3f461
      
https://github.com/qemu/qemu/commit/1ff735bdc417945bc6df1857861b127644b3f461
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Detect unaligned length in bdrv_qiov_is_aligned()

For an O_DIRECT request to succeed, it's not only necessary that all
base addresses in the qiov are aligned, but also that each length in it
is aligned.

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


  Commit: 339064d5063924e5176842abbf6c8089f3479c5b
      
https://github.com/qemu/qemu/commit/339064d5063924e5176842abbf6c8089f3479c5b
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  block: Don't use guest sector size for qemu_blockalign()

bs->buffer_alignment is set by the device emulation and contains the
logical block size of the guest device. This isn't something that the
block layer should know, and even less something to use for determining
the right alignment of buffers to be used for the host.

The new BlockLimits field opt_mem_alignment tells the qemu block layer
the optimal alignment to be used so that no bounce buffer must be used
in the driver.

This patch may change the buffer alignment from 4k to 512 for all
callers that used qemu_blockalign() with the top-level image format
BlockDriverState. The value was never propagated to other levels in the
tree, so in particular raw-posix never required anything else than 512.

While on disks with 4k sectors direct I/O requires a 4k alignment,
memory may still be okay when aligned to 512 byte boundaries. This is
what must have happened in practice, because otherwise this would
already have failed earlier. Therefore I don't expect regressions even
with this intermediate state. Later, raw-posix can implement the hook
and expose a different memory alignment requirement.

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


  Commit: 1b7fd729559c6d3b273303aa48bc653ceef08747
      
https://github.com/qemu/qemu/commit/1b7fd729559c6d3b273303aa48bc653ceef08747
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c
    M hw/block/virtio-blk.c
    M hw/ide/core.c
    M hw/scsi/scsi-disk.c
    M hw/scsi/scsi-generic.c
    M include/block/block.h
    M include/block/block_int.h

  Log Message:
  -----------
  block: rename buffer_alignment to guest_block_size

The alignment field is now set to the value that is promised to the
guest, rather than required by the host.  The next patches will make
QEMU aware of the host-provided values, so make this clear.

The alignment is also not about memory buffers, but about the sectors on
the disk, change the documentation of the field.

At this point, the field is set by the device emulation, but completely
ignored by the block layer.

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


  Commit: c25f53b06eba1575d5d0e92a0132455c97825b83
      
https://github.com/qemu/qemu/commit/c25f53b06eba1575d5d0e92a0132455c97825b83
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c
    M block/raw-posix.c
    M block/raw-win32.c
    M include/block/block_int.h

  Log Message:
  -----------
  raw: Probe required direct I/O alignment

Add a bs->request_alignment field that contains the required
offset/length alignment for I/O requests and fill it in the raw block
drivers. Use ioctls if possible, else see what alignment it takes for
O_DIRECT to succeed.

While at it, also expose the memory alignment requirements, which may be
(and in practice are) different from the disk alignment requirements.

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


  Commit: d0c7f642f5eb2cb21d0c3acf766cb375eaaf4666
      
https://github.com/qemu/qemu/commit/d0c7f642f5eb2cb21d0c3acf766cb375eaaf4666
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Introduce bdrv_aligned_preadv()

This separates the part of bdrv_co_do_readv() that needs to happen
before the request is modified to match the backend alignment, and a
part that needs to be executed afterwards and passes the request to the
BlockDriver.

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


  Commit: 1b0288ae7fc695a8e652973f75e92464bbc13416
      
https://github.com/qemu/qemu/commit/1b0288ae7fc695a8e652973f75e92464bbc13416
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Introduce bdrv_co_do_preadv()

Similar to bdrv_pread(), which aligns byte-aligned request to 512 byte
sectors, bdrv_co_do_preadv() takes a byte-aligned request and aligns it
to the alignment specified in bs->request_alignment.

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


  Commit: b404f72036716ab8ace04b83a8f0a93be4739a6a
      
https://github.com/qemu/qemu/commit/b404f72036716ab8ace04b83a8f0a93be4739a6a
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Introduce bdrv_aligned_pwritev()

This separates the part of bdrv_co_do_writev() that needs to happen
before the request is modified to match the backend alignment, and a
part that needs to be executed afterwards and passes the request to the
BlockDriver.

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


  Commit: 244eadef5c797c674b0aef96366671be4b33d03a
      
https://github.com/qemu/qemu/commit/244eadef5c797c674b0aef96366671be4b33d03a
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: write: Handle COR dependency after I/O throttling

First waiting for all COR requests to complete and calling the
throttling function afterwards means that the request could be delayed
and we still need to wait for the COR request even if it was issued only
after the throttled write request.

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


  Commit: 6601553e27091ffe240bea69227adce941fe12e8
      
https://github.com/qemu/qemu/commit/6601553e27091ffe240bea69227adce941fe12e8
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Introduce bdrv_co_do_pwritev()

This is going to become the bdrv_co_do_preadv() equivalent for writes.
In this patch, however, just a function taking byte offsets is created,
it doesn't align anything yet.

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


  Commit: 793ed47a7a2b09b67cb2a8863dff531436532b5c
      
https://github.com/qemu/qemu/commit/793ed47a7a2b09b67cb2a8863dff531436532b5c
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c
    M block/backup.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Switch BdrvTrackedRequest to byte granularity

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


  Commit: 65afd211c71fc91750d8a18f9604c1e57a5202fb
      
https://github.com/qemu/qemu/commit/65afd211c71fc91750d8a18f9604c1e57a5202fb
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Allow waiting for overlapping requests between begin/end

Previously, it was not possible to use wait_for_overlapping_requests()
between tracked_request_begin()/end() because it would wait for itself.

Ignore the current request in the overlap check and run more of the
bdrv_co_do_preadv/pwritev code with a BdrvTrackedRequest present.

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


  Commit: ec746e10cb2e6276a8d2e036454792fe0674864a
      
https://github.com/qemu/qemu/commit/ec746e10cb2e6276a8d2e036454792fe0674864a
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Make zero-after-EOF work with larger alignment

Odd file sizes could make bdrv_aligned_preadv() shorten the request in
non-aligned ways. Fix it by rounding to the required alignment instead
of 512 bytes.

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


  Commit: 2dbafdc012d3ea81a97fec6226ca82d644539c9a
      
https://github.com/qemu/qemu/commit/2dbafdc012d3ea81a97fec6226ca82d644539c9a
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  block: Generalise and optimise COR serialisation

Change the API so that specific requests can be marked serialising. Only
these requests are checked for overlaps then.

This means that during a Copy on Read operation, not all requests
overlapping other requests are serialised any more, but only those that
actually overlap with the specific COR request.

Also remove COR from function and variable names because this
functionality can be useful in other contexts.

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


  Commit: 7327145f63a224c9ba9c16d0c29781feffef8dc6
      
https://github.com/qemu/qemu/commit/7327145f63a224c9ba9c16d0c29781feffef8dc6
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  block: Make overlap range for serialisation dynamic

Copy on Read wants to serialise with all requests touching the same
cluster, so wait_serialising_requests() rounded to cluster boundaries.
Other users like alignment RMW will have different requirements, though
(requests touching the same sector), so make it dynamic.

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


  Commit: 6460440f34c709461b84375cfd8a86b27d433225
      
https://github.com/qemu/qemu/commit/6460440f34c709461b84375cfd8a86b27d433225
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  block: Allow wait_serialising_requests() at any point

We can only have a single wait_serialising_requests() call per request
because otherwise we can run into deadlocks where requests are waiting
for each other. The same is true when wait_serialising_requests() is not
at the very beginning of a request, so that other requests can be issued
between the start of the tracking and wait_serialising_requests().

Fix this by changing wait_serialising_requests() to ignore requests that
are already (directly or indirectly) waiting for the calling request.

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


  Commit: 3b8242e0ea2a2c201ef3d1bd24080490dae33080
      
https://github.com/qemu/qemu/commit/3b8242e0ea2a2c201ef3d1bd24080490dae33080
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Align requests in bdrv_co_do_pwritev()

This patch changes bdrv_co_do_pwritev() to actually be what its name
promises. If requests aren't properly aligned, it performs a RMW.

Requests touching the same block are serialised against the RMW request.
Further optimisation of this is possible by differentiating types of
requests (concurrent reads should actually be okay here).

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


  Commit: 28de2dcd88de31f50bbd43d9c2fcb046c3a727cb
      
https://github.com/qemu/qemu/commit/28de2dcd88de31f50bbd43d9c2fcb046c3a727cb
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Assert serialisation assumptions in pwritev

If a request calls wait_serialising_requests() and actually has to wait
in this function (i.e. a coroutine yield), other requests can run and
previously read data (like the head or tail buffer) could become
outdated. In this case, we would have to restart from the beginning to
read in the updated data.

However, we're lucky and don't actually need to do that: A request can
only wait in the first call of wait_serialising_requests() because we
mark it as serialising before that call, so any later requests would
wait. So as we don't wait in practice, we don't have to reload the data.

This is an important assumption that may not be broken or data
corruption will happen. Document it with some assertions.

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


  Commit: 775aa8b6e0ea25f8cca74d0fcb1e30a764cf624f
      
https://github.com/qemu/qemu/commit/775aa8b6e0ea25f8cca74d0fcb1e30a764cf624f
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Change coroutine wrapper to byte granularity

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


  Commit: a3ef65718506fb94cb9e5a903ef9bf9ad8fbe6de
      
https://github.com/qemu/qemu/commit/a3ef65718506fb94cb9e5a903ef9bf9ad8fbe6de
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Make bdrv_pread() a bdrv_prwv_co() wrapper

Instead of implementing the alignment adjustment here, use the now
existing functionality of bdrv_co_do_preadv().

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


  Commit: 8407d5d7e265911b05949ee2ffd9e45c97bf0505
      
https://github.com/qemu/qemu/commit/8407d5d7e265911b05949ee2ffd9e45c97bf0505
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  block: Make bdrv_pwrite() a bdrv_prwv_co() wrapper

Instead of implementing the alignment adjustment here, use the now
existing functionality of bdrv_co_do_pwritev().

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


  Commit: 2c9880c45e2f9a98d11d44ce9966515c23870a86
      
https://github.com/qemu/qemu/commit/2c9880c45e2f9a98d11d44ce9966515c23870a86
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  iscsi: Set bs->request_alignment

The iSCSI backend already gets the block size from the READ CAPACITY
command it sends.  Save it so that the generic block layer gets it
too.

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


  Commit: b35ee7fb2308e09092488029b5a9e456ce61bbe6
      
https://github.com/qemu/qemu/commit/b35ee7fb2308e09092488029b5a9e456ce61bbe6
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

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

  Log Message:
  -----------
  blkdebug: Make required alignment configurable

The new 'align' option of blkdebug can be used in order to emulate
backends with a required 4k alignment on hosts which only really require
512 byte alignment.

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


  Commit: cd33d02a1012e58ee0d3c8259159e8c60cfa0a4d
      
https://github.com/qemu/qemu/commit/cd33d02a1012e58ee0d3c8259159e8c60cfa0a4d
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M qemu-io-cmds.c

  Log Message:
  -----------
  qemu-io: New command 'sleep'

There is no easy way to check that a request correctly waits for a
different request. With a sleep command we can at least approximate it.

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


  Commit: 9e1cb96d9a5e434f389a4d7b7ff4dcdd71e8ec0f
      
https://github.com/qemu/qemu/commit/9e1cb96d9a5e434f389a4d7b7ff4dcdd71e8ec0f
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c
    M block/blkdebug.c
    M include/block/block.h
    A tests/qemu-iotests/077
    A tests/qemu-iotests/077.out
    M tests/qemu-iotests/group

  Log Message:
  -----------
  qemu-iotests: Test pwritev RMW logic

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


  Commit: d5103588aa39157c8eea3bb5fb6780bbd8be21b7
      
https://github.com/qemu/qemu/commit/d5103588aa39157c8eea3bb5fb6780bbd8be21b7
  Author: Kevin Wolf <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Switch bdrv_io_limits_intercept() to byte granularity

Request sizes used to be rounded down to the next sector boundary,
allowing to bypass the I/O limit. Now all requests are accounted for
with their exact byte size.

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


  Commit: 0d688cf7d8d71bce2aab83173552a784e96b6729
      
https://github.com/qemu/qemu/commit/0d688cf7d8d71bce2aab83173552a784e96b6729
  Author: Anthony Liguori <address@hidden>
  Date:   2014-01-24 (Fri, 24 Jan 2014)

  Changed paths:
    M Makefile.objs
    M block.c
    M block/backup.c
    M block/blkdebug.c
    M block/blkverify.c
    M block/cow.c
    M block/curl.c
    M block/gluster.c
    M block/iscsi.c
    M block/mirror.c
    M block/qapi.c
    M block/qcow.c
    M block/qcow2.c
    M block/qcow2.h
    M block/qed.c
    M block/raw-posix.c
    M block/raw-win32.c
    M block/rbd.c
    M block/sheepdog.c
    M block/stream.c
    M block/vhdx.c
    M block/vmdk.c
    M blockdev.c
    M configure
    M hmp-commands.hx
    M hmp.c
    M hw/block/virtio-blk.c
    M hw/ide/core.c
    M hw/scsi/scsi-disk.c
    M hw/scsi/scsi-generic.c
    M hw/virtio/dataplane/vring.c
    M include/block/block.h
    M include/block/block_int.h
    M include/block/qapi.h
    M include/monitor/monitor.h
    R include/monitor/readline.h
    M include/qapi/qmp/qdict.h
    M include/qemu-io.h
    M include/qemu/config-file.h
    M include/qemu/osdep.h
    A include/qemu/readline.h
    M monitor.c
    M qapi-schema.json
    M qemu-doc.texi
    M qemu-img.texi
    M qemu-io-cmds.c
    M qemu-io.c
    M qmp-commands.hx
    M qobject/qdict.c
    R readline.c
    M scripts/qapi.py
    M tests/check-qdict.c
    M tests/fdc-test.c
    M tests/ide-test.c
    M tests/qemu-iotests/017
    M tests/qemu-iotests/018
    M tests/qemu-iotests/019
    M tests/qemu-iotests/020
    M tests/qemu-iotests/034
    M tests/qemu-iotests/037
    M tests/qemu-iotests/051.out
    M tests/qemu-iotests/059
    M tests/qemu-iotests/059.out
    M tests/qemu-iotests/063
    M tests/qemu-iotests/069
    A tests/qemu-iotests/071
    A tests/qemu-iotests/071.out
    A tests/qemu-iotests/072
    A tests/qemu-iotests/072.out
    A tests/qemu-iotests/077
    A tests/qemu-iotests/077.out
    M tests/qemu-iotests/common.rc
    M tests/qemu-iotests/group
    M util/Makefile.objs
    M util/oslib-posix.c
    M util/oslib-win32.c
    M util/qemu-config.c
    M util/qemu-progress.c
    A util/readline.c

  Log Message:
  -----------
  Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging

Block patches

# gpg: Signature made Fri 24 Jan 2014 08:40:53 AM PST using RSA key ID C88F2FD6
# gpg: Can't check signature: public key not found

* kwolf/tags/for-anthony: (93 commits)
  block: Switch bdrv_io_limits_intercept() to byte granularity
  qemu-iotests: Test pwritev RMW logic
  qemu-io: New command 'sleep'
  blkdebug: Make required alignment configurable
  iscsi: Set bs->request_alignment
  block: Make bdrv_pwrite() a bdrv_prwv_co() wrapper
  block: Make bdrv_pread() a bdrv_prwv_co() wrapper
  block: Change coroutine wrapper to byte granularity
  block: Assert serialisation assumptions in pwritev
  block: Align requests in bdrv_co_do_pwritev()
  block: Allow wait_serialising_requests() at any point
  block: Make overlap range for serialisation dynamic
  block: Generalise and optimise COR serialisation
  block: Make zero-after-EOF work with larger alignment
  block: Allow waiting for overlapping requests between begin/end
  block: Switch BdrvTrackedRequest to byte granularity
  block: Introduce bdrv_co_do_pwritev()
  block: write: Handle COR dependency after I/O throttling
  block: Introduce bdrv_aligned_pwritev()
  block: Introduce bdrv_co_do_preadv()
  ...

Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


Compare: https://github.com/qemu/qemu/compare/732c66ce641c...0d688cf7d8d7

reply via email to

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