qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 4f78a1: commit: Fix completion with extra ref


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 4f78a1: commit: Fix completion with extra reference
Date: Mon, 26 Jun 2017 09:42:54 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 4f78a16fee462471416dc49b409d57b2071cf3d9
      
https://github.com/qemu/qemu/commit/4f78a16fee462471416dc49b409d57b2071cf3d9
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/commit.c

  Log Message:
  -----------
  commit: Fix completion with extra reference

commit_complete() can't assume that after its block_job_completed() the
job is actually immediately freed; someone else may still be holding
references. In this case, the op blockers on the intermediate nodes make
the graph reconfiguration in the completion code fail.

Call block_job_remove_all_bdrv() manually so that we know for sure that
any blockers on intermediate nodes are given up.

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


  Commit: ecaf8c8a6fdd2153f1652d1598c4e344cc961e3b
      
https://github.com/qemu/qemu/commit/ecaf8c8a6fdd2153f1652d1598c4e344cc961e3b
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

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

  Log Message:
  -----------
  qemu-iotests: Allow starting new qemu after cleanup

After _cleanup_qemu(), test cases should be able to start the next qemu
process and call _cleanup_qemu() for that one as well. For this to work
cleanly, we need to improve the cleanup so that the second invocation
doesn't try to kill the qemu instances from the first invocation a
second time (which would result in error messages).

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


  Commit: 24575bfa8c05041db097d203c5506814db0fa110
      
https://github.com/qemu/qemu/commit/24575bfa8c05041db097d203c5506814db0fa110
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

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

  Log Message:
  -----------
  qemu-iotests: Test exiting qemu with running job

When qemu is exited, all running jobs should be cancelled successfully.
This adds a test for this for all types of block jobs that currently
exist in qemu.

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


  Commit: dc88a467ec7214c3086094033daf2aba554337b1
      
https://github.com/qemu/qemu/commit/dc88a467ec7214c3086094033daf2aba554337b1
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: count bdrv_co_rw_vmstate() requests

Call bdrv_inc/dec_in_flight() for vmstate reads/writes.  This seems
unnecessary at first glance because vmstate reads/writes are done
synchronously while the guest is stopped.  But we need the bdrv_wakeup()
in bdrv_dec_in_flight() so the main loop sees request completion.
Besides, it's cleaner to count vmstate reads/writes like ordinary
read/write requests.

The bdrv_wakeup() partially fixes a 'savevm' hang with -object iothread.

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


  Commit: ea17c9d20d7396351be5e14317354519ff53721d
      
https://github.com/qemu/qemu/commit/ea17c9d20d7396351be5e14317354519ff53721d
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: use BDRV_POLL_WHILE() in bdrv_rw_vmstate()

Calling aio_poll() directly may have been fine previously, but this is
the future, man!  The difference between an aio_poll() loop and
BDRV_POLL_WHILE() is that BDRV_POLL_WHILE() releases the AioContext
around aio_poll().

This allows the IOThread to run fd handlers or BHs to complete the
request.  Failure to release the AioContext causes deadlocks.

Using BDRV_POLL_WHILE() partially fixes a 'savevm' hang with -object
iothread.

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


  Commit: 17e2a4a47d46dc9c33d5946cbdc1ceb15e34b5ac
      
https://github.com/qemu/qemu/commit/17e2a4a47d46dc9c33d5946cbdc1ceb15e34b5ac
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M migration/savevm.c

  Log Message:
  -----------
  migration: avoid recursive AioContext locking in save_vmstate()

AioContext was designed to allow nested acquire/release calls.  It uses
a recursive mutex so callers don't need to worry about nesting...or so
we thought.

BDRV_POLL_WHILE() is used to wait for block I/O requests.  It releases
the AioContext temporarily around aio_poll().  This gives IOThreads a
chance to acquire the AioContext to process I/O completions.

It turns out that recursive locking and BDRV_POLL_WHILE() don't mix.
BDRV_POLL_WHILE() only releases the AioContext once, so the IOThread
will not be able to acquire the AioContext if it was acquired
multiple times.

Instead of trying to release AioContext n times in BDRV_POLL_WHILE(),
this patch simply avoids nested locking in save_vmstate().  It's the
simplest fix and we should step back to consider the big picture with
all the recent changes to block layer threading.

This patch is the final fix to solve 'savevm' hanging with -object
iothread.

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


  Commit: 8649f2f9b2d83b627199babc52b454db136e253c
      
https://github.com/qemu/qemu/commit/8649f2f9b2d83b627199babc52b454db136e253c
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M migration/savevm.c

  Log Message:
  -----------
  migration: use bdrv_drain_all_begin/end() instead bdrv_drain_all()

blk/bdrv_drain_all() only takes effect for a single instant and then
resumes block jobs, guest devices, and other external clients like the
NBD server.  This can be handy when performing a synchronous drain
before terminating the program, for example.

Monitor commands usually need to quiesce I/O across an entire code
region so blk/bdrv_drain_all() is not suitable.  They must use
bdrv_drain_all_begin/end() to mark the region.  This prevents new I/O
requests from slipping in or worse - block jobs completing and modifying
the graph.

I audited other blk/bdrv_drain_all() callers but did not find anything
that needs a similar fix.  This patch fixes the savevm/loadvm commands.
Although I haven't encountered a read world issue this makes the code
safer.

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


  Commit: dfaca4641cfa1601242933ba99fb0156522cc350
      
https://github.com/qemu/qemu/commit/dfaca4641cfa1601242933ba99fb0156522cc350
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M qemu-options.hx

  Log Message:
  -----------
  doc: Document generic -blockdev options

This adds documentation for the -blockdev options that apply to all
nodes independent of the block driver used.

All options that are shared by -blockdev and -drive are now explained in
the section for -blockdev. The documentation of -drive mentions that all
-blockdev options are accepted as well.

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


  Commit: 370e8328d7c9e0959c31b3ea97f4a49252333307
      
https://github.com/qemu/qemu/commit/370e8328d7c9e0959c31b3ea97f4a49252333307
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M qemu-options.hx

  Log Message:
  -----------
  doc: Document driver-specific -blockdev options

This documents the driver-specific options for the raw, qcow2 and file
block drivers for the man page. For everything else, we refer to the
QAPI documentation.

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


  Commit: 0d2fac8ede5623b5bb825bd002633cd65db5159e
      
https://github.com/qemu/qemu/commit/0d2fac8ede5623b5bb825bd002633cd65db5159e
  Author: Alberto Garcia <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/throttle-groups.c

  Log Message:
  -----------
  throttle: Update throttle-groups.c documentation

There used to be throttle_timers_{detach,attach}_aio_context() calls
in bdrv_set_aio_context(), but since 7ca7f0f6db1fedd28d490795d778cf239
they are now in blk_set_aio_context().

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


  Commit: 1575829d2aaced8ce6a5728d8e9fbbdee8f80885
      
https://github.com/qemu/qemu/commit/1575829d2aaced8ce6a5728d8e9fbbdee8f80885
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M migration/savevm.c

  Log Message:
  -----------
  migration: hold AioContext lock for loadvm qemu_fclose()

migration_incoming_state_destroy() uses qemu_fclose() on the vmstate
file.  Make sure to call it inside an AioContext acquire/release region.

This fixes an 'qemu: qemu_mutex_unlock: Operation not permitted' abort
in loadvm.

This patch closes the vmstate file before ending the drained region.
Previously we closed the vmstate file after ending the drained region.
The order does not matter.

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


  Commit: 79645e0569e7a95f5c9bee67eb62b06daaed8099
      
https://github.com/qemu/qemu/commit/79645e0569e7a95f5c9bee67eb62b06daaed8099
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M tests/qemu-iotests/068

  Log Message:
  -----------
  qemu-iotests: 068: extract _qemu() function

Avoid duplicating the QEMU command-line.

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


  Commit: 5aaf590df4b075c18cf6f27a51900a126deb8634
      
https://github.com/qemu/qemu/commit/5aaf590df4b075c18cf6f27a51900a126deb8634
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M tests/qemu-iotests/068

  Log Message:
  -----------
  qemu-iotests: 068: use -drive/-device instead of -hda

The legacy -hda option does not support -drive/-device parameters.  They
will be required by the next patch that extends this test case.

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


  Commit: ea4f3cebc4e0224605ab9dd9724aa4e7768fe372
      
https://github.com/qemu/qemu/commit/ea4f3cebc4e0224605ab9dd9724aa4e7768fe372
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

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

  Log Message:
  -----------
  qemu-iotests: 068: test iothread mode

Perform the savevm/loadvm test with both iothread on and off.  This
covers the recently found savevm/loadvm hang when iothread is enabled.

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


  Commit: b2b2b67a0057407e19cfa3fdd9002db21ced8b01
      
https://github.com/qemu/qemu/commit/b2b2b67a0057407e19cfa3fdd9002db21ced8b01
  Author: Stephen Bates <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/nvme.h

  Log Message:
  -----------
  nvme: Add support for Read Data and Write Data in CMBs.

Add the ability for the NVMe model to support both the RDS and WDS
modes in the Controller Memory Buffer.

Although not currently supported in the upstreamed Linux kernel a fork
with support exists [1] and user-space test programs that build on
this also exist [2].

Useful for testing CMB functionality in preperation for real CMB
enabled NVMe devices (coming soon).

[1] https://github.com/sbates130272/linux-p2pmem
[2] https://github.com/sbates130272/p2pmem-test

Signed-off-by: Stephen Bates <address@hidden>
Reviewed-by: Logan Gunthorpe <address@hidden>
Reviewed-by: Keith Busch <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 026ac1586bdbd184e24082aa2bbab1fa3c48456b
      
https://github.com/qemu/qemu/commit/026ac1586bdbd184e24082aa2bbab1fa3c48456b
  Author: Alberto Garcia <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qcow2-cluster.c

  Log Message:
  -----------
  qcow2: Remove unused Error variable in do_perform_cow()

We are using the return value of qcow2_encrypt_sectors() to detect
problems but we are throwing away the returned Error since we have no
way to report it to the user. Therefore we can simply get rid of the
local Error variable and pass NULL instead.

Alternatively we could try to figure out a way to pass the original
error instead of simply returning -EIO, but that would be more
invasive, so let's keep the current approach.

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


  Commit: e034f5bcbc1139903b27c00bd832ee7c4b065810
      
https://github.com/qemu/qemu/commit/e034f5bcbc1139903b27c00bd832ee7c4b065810
  Author: Alberto Garcia <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qcow2-cluster.c
    M block/qcow2.h

  Log Message:
  -----------
  qcow2: Use unsigned int for both members of Qcow2COWRegion

Qcow2COWRegion has two attributes:

- The offset of the COW region from the start of the first cluster
  touched by the I/O request. Since it's always going to be positive
  and the maximum request size is at most INT_MAX, we can use a
  regular unsigned int to store this offset.

- The size of the COW region in bytes. This is guaranteed to be >= 0,
  so we should use an unsigned type instead.

In x86_64 this reduces the size of Qcow2COWRegion from 16 to 8 bytes.
It will also help keep some assertions simpler now that we know that
there are no negative numbers.

The prototype of do_perform_cow() is also updated to reflect these
changes.

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


  Commit: 99450c6fb9ac85e2c8097156fed78b8ef1d610e0
      
https://github.com/qemu/qemu/commit/99450c6fb9ac85e2c8097156fed78b8ef1d610e0
  Author: Alberto Garcia <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qcow2-cluster.c

  Log Message:
  -----------
  qcow2: Make perform_cow() call do_perform_cow() twice

Instead of calling perform_cow() twice with a different COW region
each time, call it just once and make perform_cow() handle both
regions.

This patch simply moves code around. The next one will do the actual
reordering of the COW operations.

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


  Commit: 672f0f2c4b5ee521f5ea06eadaacf8dfa99474f4
      
https://github.com/qemu/qemu/commit/672f0f2c4b5ee521f5ea06eadaacf8dfa99474f4
  Author: Alberto Garcia <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qcow2-cluster.c

  Log Message:
  -----------
  qcow2: Split do_perform_cow() into _read(), _encrypt() and _write()

This patch splits do_perform_cow() into three separate functions to
read, encrypt and write the COW regions.

perform_cow() can now read both regions first, then encrypt them and
finally write them to disk. The memory allocation is also done in
this function now, using one single buffer large enough to hold both
regions.

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


  Commit: b3cf1c7cf8714af96def49668a267fa4075242ca
      
https://github.com/qemu/qemu/commit/b3cf1c7cf8714af96def49668a267fa4075242ca
  Author: Alberto Garcia <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qcow2-cluster.c

  Log Message:
  -----------
  qcow2: Allow reading both COW regions with only one request

Reading both COW regions requires two separate requests, but it's
perfectly possible to merge them and perform only one. This generally
improves performance, particularly on rotating disk drives. The
downside is that the data in the middle region is read but discarded.

This patch takes a conservative approach and only merges reads when
the size of the middle region is <= 16KB.

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


  Commit: 86b862c431ae5effa80a095c9c989a5a9976ead1
      
https://github.com/qemu/qemu/commit/86b862c431ae5effa80a095c9c989a5a9976ead1
  Author: Alberto Garcia <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qcow2-cluster.c

  Log Message:
  -----------
  qcow2: Pass a QEMUIOVector to do_perform_cow_{read,write}()

Instead of passing a single buffer pointer to do_perform_cow_write(),
pass a QEMUIOVector. This will allow us to merge the write requests
for the COW regions and the actual data into a single one.

Although do_perform_cow_read() does not strictly need to change its
API, we're doing it here as well for consistency.

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


  Commit: ee22a9d86921310672aa8775489217f3e2f5e1c6
      
https://github.com/qemu/qemu/commit/ee22a9d86921310672aa8775489217f3e2f5e1c6
  Author: Alberto Garcia <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/qcow2.h

  Log Message:
  -----------
  qcow2: Merge the writing of the COW regions with the guest data

If the guest tries to write data that results on the allocation of a
new cluster, instead of writing the guest data first and then the data
from the COW regions, write everything together using one single I/O
operation.

This can improve the write performance by 25% or more, depending on
several factors such as the media type, the cluster size and the I/O
request size.

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


  Commit: 24990c5b959c3a24d76ccf96303c1f70556f1dd2
      
https://github.com/qemu/qemu/commit/24990c5b959c3a24d76ccf96303c1f70556f1dd2
  Author: Alberto Garcia <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qcow2-cluster.c
    M block/qcow2.c

  Log Message:
  -----------
  qcow2: Use offset_into_cluster() and offset_to_l2_index()

We already have functions for doing these calculations, so let's use
them instead of doing everything by hand. This makes the code a bit
more readable.

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


  Commit: 3b7cd9fd8fc2d34da6a42f49421e3549918adf58
      
https://github.com/qemu/qemu/commit/3b7cd9fd8fc2d34da6a42f49421e3549918adf58
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Use bottom half to resume waiting requests

The qed driver serialises allocating write requests. When the active
allocation is finished, the AIO callback is called, but after this, the
next allocating request is immediately processed instead of leaving the
coroutine. Resuming another allocation request in the same request
coroutine means that the request now runs in the wrong coroutine.

The following is one of the possible effects of this: The completed
request will generally reenter its request coroutine in a bottom half,
expecting that it completes the request in bdrv_driver_pwritev().
However, if the second request actually yielded before leaving the
coroutine, the reused request coroutine is in an entirely different
place and is reentered prematurely. Not a good idea.

Let's make sure that we exit the coroutine after completing the first
request by resuming the next allocating request only with a bottom
half.

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


  Commit: 11273076e96829a48b2773327d6488f1d61901a2
      
https://github.com/qemu/qemu/commit/11273076e96829a48b2773327d6488f1d61901a2
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed-table.c

  Log Message:
  -----------
  qed: Make qed_read_table() synchronous

Note that this code is generally not running in coroutine context, so
this is an actual blocking synchronous operation. We'll fix this in a
moment.

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


  Commit: f6513529c67509264fc602c4a537ec24bcb7b26f
      
https://github.com/qemu/qemu/commit/f6513529c67509264fc602c4a537ec24bcb7b26f
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed-table.c

  Log Message:
  -----------
  qed: Remove callback from qed_read_table()

Instead of passing the return value to a callback, return it to the
caller so that the callback can be inlined there.

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


  Commit: a8165d2d6619a29b99451fd0a310d64693d86c3f
      
https://github.com/qemu/qemu/commit/a8165d2d6619a29b99451fd0a310d64693d86c3f
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed-cluster.c
    M block/qed-table.c
    M block/qed.h

  Log Message:
  -----------
  qed: Remove callback from qed_read_l2_table()

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


  Commit: 0f21b7a1b7163dddfe7900bd3da7b4cf9568b536
      
https://github.com/qemu/qemu/commit/0f21b7a1b7163dddfe7900bd3da7b4cf9568b536
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed-cluster.c
    M block/qed.c
    M block/qed.h

  Log Message:
  -----------
  qed: Remove callback from qed_find_cluster()

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


  Commit: e85c5281426364f9c499cd4b71ec6dea20c5b4b2
      
https://github.com/qemu/qemu/commit/e85c5281426364f9c499cd4b71ec6dea20c5b4b2
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Make qed_read_backing_file() synchronous

Note that this code is generally not running in coroutine context, so
this is an actual blocking synchronous operation. We'll fix this in a
moment.

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


  Commit: 0f7aa24d2ccfa8c6a1894c50e46c1f300d7e6db0
      
https://github.com/qemu/qemu/commit/0f7aa24d2ccfa8c6a1894c50e46c1f300d7e6db0
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Make qed_copy_from_backing_file() synchronous

Note that this code is generally not running in coroutine context, so
this is an actual blocking synchronous operation. We'll fix this in a
moment.

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


  Commit: b4ac32f34f24b832e51fe092988e1d05396510eb
      
https://github.com/qemu/qemu/commit/b4ac32f34f24b832e51fe092988e1d05396510eb
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Remove callback from qed_copy_from_backing_file()

With this change, qed_aio_write_prefill() and qed_aio_write_postfill()
collapse into a single function. This is reflected by a rename of the
combined function to qed_aio_write_cow().

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


  Commit: 7076309aefaa480fd8b48eaa9aa73c394cf0ae7a
      
https://github.com/qemu/qemu/commit/7076309aefaa480fd8b48eaa9aa73c394cf0ae7a
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Make qed_write_header() synchronous

Note that this code is generally not running in coroutine context, so
this is an actual blocking synchronous operation. We'll fix this in a
moment.

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


  Commit: f13d712bb233d1d2d05dc8c70bd868adc0b5aaec
      
https://github.com/qemu/qemu/commit/f13d712bb233d1d2d05dc8c70bd868adc0b5aaec
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Remove callback from qed_write_header()

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


  Commit: 602b57fba48e3fcbda82112275c86d0f1873bbd3
      
https://github.com/qemu/qemu/commit/602b57fba48e3fcbda82112275c86d0f1873bbd3
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed-table.c

  Log Message:
  -----------
  qed: Make qed_write_table() synchronous

Note that this code is generally not running in coroutine context, so
this is an actual blocking synchronous operation. We'll fix this in a
moment.

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


  Commit: 29470d11bf310de58e05ceadd61f25e6ed9ea8de
      
https://github.com/qemu/qemu/commit/29470d11bf310de58e05ceadd61f25e6ed9ea8de
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/Makefile.objs
    R block/qed-gencb.c
    M block/qed.h

  Log Message:
  -----------
  qed: Remove GenericCB

The GenericCB infrastructure isn't used any more. Remove it.

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


  Commit: 453e53e2a1128b85a03af7fd597292c9b6f8a9a0
      
https://github.com/qemu/qemu/commit/453e53e2a1128b85a03af7fd597292c9b6f8a9a0
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed-table.c
    M block/qed.c
    M block/qed.h

  Log Message:
  -----------
  qed: Remove callback from qed_write_table()

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


  Commit: 3e248cdcd907df82da63f89905e2e1bd20d44ab6
      
https://github.com/qemu/qemu/commit/3e248cdcd907df82da63f89905e2e1bd20d44ab6
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Make qed_aio_read_data() synchronous

Note that this code is generally not running in coroutine context, so
this is an actual blocking synchronous operation. We'll fix this in a
moment.

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


  Commit: a4d8f1aee13955026c7ff4414cabad625749a613
      
https://github.com/qemu/qemu/commit/a4d8f1aee13955026c7ff4414cabad625749a613
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Make qed_aio_write_main() synchronous

Note that this code is generally not running in coroutine context, so
this is an actual blocking synchronous operation. We'll fix this in a
moment.

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


  Commit: fae25ac7bd6d64724c415027262a532531decc48
      
https://github.com/qemu/qemu/commit/fae25ac7bd6d64724c415027262a532531decc48
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Inline qed_commit_l2_update()

qed_commit_l2_update() is unconditionally called at the end of
qed_aio_write_l1_update(). Inline it.

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


  Commit: fb18de21e01b4c37cd4aa074bb65a0c441e01fb3
      
https://github.com/qemu/qemu/commit/fb18de21e01b4c37cd4aa074bb65a0c441e01fb3
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Add return value to qed_aio_write_l1_update()

Don't recurse into qed_aio_next_io() and qed_aio_complete() here, but
just return an error code and let the caller handle it.

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


  Commit: 88d2dd72bc071d2a20a759338ce349039b013baa
      
https://github.com/qemu/qemu/commit/88d2dd72bc071d2a20a759338ce349039b013baa
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Add return value to qed_aio_write_l2_update()

Don't recurse into qed_aio_next_io() and qed_aio_complete() here, but
just return an error code and let the caller handle it.

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


  Commit: eaf0bc56f528611c2b13450b0ab0972eadf52a8e
      
https://github.com/qemu/qemu/commit/eaf0bc56f528611c2b13450b0ab0972eadf52a8e
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Add return value to qed_aio_write_main()

Don't recurse into qed_aio_next_io() and qed_aio_complete() here, but
just return an error code and let the caller handle it.

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


  Commit: a101341aa07237fa85907b1dcafd97add47a3875
      
https://github.com/qemu/qemu/commit/a101341aa07237fa85907b1dcafd97add47a3875
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Add return value to qed_aio_write_cow()

Don't recurse into qed_aio_next_io() and qed_aio_complete() here, but
just return an error code and let the caller handle it.

While refactoring qed_aio_write_alloc() to accomodate the change,
qed_aio_write_zero_cluster() ended up with a single line, so I chose to
inline that line and remove the function completely.

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


  Commit: d6daddcdeb2c0c7d443cb039e798a1671dafdd0d
      
https://github.com/qemu/qemu/commit/d6daddcdeb2c0c7d443cb039e798a1671dafdd0d
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Add return value to qed_aio_write_inplace/alloc()

Don't recurse into qed_aio_next_io() and qed_aio_complete() here, but
just return an error code and let the caller handle it.

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


  Commit: 0596be7e6a39da44e2dcba74a97bb8b89cb71bdd
      
https://github.com/qemu/qemu/commit/0596be7e6a39da44e2dcba74a97bb8b89cb71bdd
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

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

  Log Message:
  -----------
  qed: Add return value to qed_aio_read/write_data()

Don't recurse into qed_aio_next_io() and qed_aio_complete() here, but
just return an error code and let the caller handle it.

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


  Commit: dddf8db10b47d34d9d469ffe45e000170666ecdd
      
https://github.com/qemu/qemu/commit/dddf8db10b47d34d9d469ffe45e000170666ecdd
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Remove ret argument from qed_aio_next_io()

All callers pass ret = 0, so we can just remove it.

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


  Commit: 018598747c775394471ce4a341a1ce225a1738dc
      
https://github.com/qemu/qemu/commit/018598747c775394471ce4a341a1ce225a1738dc
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Remove recursion in qed_aio_next_io()

Instead of calling itself recursively as the last thing, just convert
qed_aio_next_io() into a loop.

This patch is best reviewed with 'git show -w' because most of it is
just whitespace changes.

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


  Commit: 89f89709c7c66edd95c2288eae7ec4006256348a
      
https://github.com/qemu/qemu/commit/89f89709c7c66edd95c2288eae7ec4006256348a
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Implement .bdrv_co_readv/writev

Most of the qed code is now synchronous and matches the coroutine model.
One notable exception is the serialisation between requests which can
still schedule a callback. Before we can replace this with coroutine
locks, let's convert the driver's external interfaces to the coroutine
versions.

We need to be careful to handle both requests that call the completion
callback directly from the calling coroutine (i.e. fully synchronous
code) and requests that involve some callback, so that we need to yield
and wait for the completion callback coming from outside the coroutine.

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


  Commit: 0806c3b5dd1aced4c50eda65e9ecc9cfab4ee58e
      
https://github.com/qemu/qemu/commit/0806c3b5dd1aced4c50eda65e9ecc9cfab4ee58e
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

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

  Log Message:
  -----------
  qed: Use CoQueue for serialising allocations

Now that we're running in coroutine context, the ad-hoc serialisation
code (which drops a request that has to wait out of coroutine context)
can be replaced by a CoQueue.

This means that when we resume a serialised request, it is running in
coroutine context again and its I/O isn't blocking any more.

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


  Commit: 48cc565e767d1cb4965150d258ebd15a1b3de488
      
https://github.com/qemu/qemu/commit/48cc565e767d1cb4965150d258ebd15a1b3de488
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

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

  Log Message:
  -----------
  qed: Simplify request handling

Now that we process a request in the same coroutine from beginning to
end and don't drop out of it any more, we can look like a proper
coroutine-based driver and simply call qed_aio_next_io() and get a
return value from it instead of spawning an additional coroutine that
reenters the parent when it's done.

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


  Commit: c0e8f98927929b65ffbfb320b7a1c79e0e620006
      
https://github.com/qemu/qemu/commit/c0e8f98927929b65ffbfb320b7a1c79e0e620006
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Use a coroutine for need_check_timer

This fixes the last place where we degraded from AIO to actual blocking
synchronous I/O requests. Putting it into a coroutine means that instead
of blocking, the coroutine simply yields while doing I/O.

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


  Commit: 87f0d88261d120e428cd23305775026556e6cce6
      
https://github.com/qemu/qemu/commit/87f0d88261d120e428cd23305775026556e6cce6
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed-cluster.c
    M block/qed.c
    M block/qed.h

  Log Message:
  -----------
  qed: Add coroutine_fn to I/O path functions

Now that we stay in coroutine context for the whole request when doing
reads or writes, we can add coroutine_fn annotations to many functions
that can do I/O or yield directly.

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


  Commit: 0f714ec70673e734b4b0d5c99f7851c8d9e6fafe
      
https://github.com/qemu/qemu/commit/0f714ec70673e734b4b0d5c99f7851c8d9e6fafe
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Use bdrv_co_* for coroutine_fns

All functions that are marked coroutine_fn can directly call the
bdrv_co_* version of functions instead of going through the wrapper.

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


  Commit: c5f1ad429cdf26023cf331075a7d327708e3db6d
      
https://github.com/qemu/qemu/commit/c5f1ad429cdf26023cf331075a7d327708e3db6d
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/io.c
    M block/trace-events
    M include/block/block.h

  Log Message:
  -----------
  block: Remove bdrv_aio_readv/writev/flush()

These functions are unused now.

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


  Commit: f5a5ca796932d04cb2a1cb9382a55f72795b3e06
      
https://github.com/qemu/qemu/commit/f5a5ca796932d04cb2a1cb9382a55f72795b3e06
  Author: Manos Pitsidianakis <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/blkdebug.c
    M block/blkreplay.c
    M block/block-backend.c
    M block/file-posix.c
    M block/io.c
    M block/iscsi.c
    M block/mirror.c
    M block/nbd-client.c
    M block/nbd-client.h
    M block/qcow2.c
    M block/qed.c
    M block/raw-format.c
    M block/rbd.c
    M block/sheepdog.c
    M include/block/block.h
    M include/block/block_int.h
    M include/sysemu/block-backend.h
    M qemu-io-cmds.c

  Log Message:
  -----------
  block: change variable names in BlockDriverState

Change the 'int count' parameter in *pwrite_zeros, *pdiscard related
functions (and some others) to 'int bytes', as they both refer to bytes.
This helps with code legibility.

Signed-off-by: Manos Pitsidianakis <address@hidden>
Message-id: address@hidden
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: 4172a00373b2c81374293becc02b16b7f8c76659
      
https://github.com/qemu/qemu/commit/4172a00373b2c81374293becc02b16b7f8c76659
  Author: sochin.jiang <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

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

  Log Message:
  -----------
  fix: avoid an infinite loop or a dangling pointer problem in img_commit

img_commit could fall into an infinite loop calling run_block_job() if
its blockjob fails on any I/O error, fix this already known problem.

Signed-off-by: sochin.jiang <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: de81d72d3d13a19edf4d461be3b0f5a877be0234
      
https://github.com/qemu/qemu/commit/de81d72d3d13a19edf4d461be3b0f5a877be0234
  Author: Max Reitz <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/blkdebug.c

  Log Message:
  -----------
  blkdebug: Catch bs->exact_filename overflow

The bs->exact_filename field may not be sufficient to store the full
blkdebug node filename. In this case, we should not generate a filename
at all instead of an unusable one.

Cc: address@hidden
Reported-by: Qu Wenruo <address@hidden>
Signed-off-by: Max Reitz <address@hidden>
Message-id: address@hidden
Reviewed-by: Alberto Garcia <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: 05cc758a3dfc79488d0a8eb7f5830a41871e78d0
      
https://github.com/qemu/qemu/commit/05cc758a3dfc79488d0a8eb7f5830a41871e78d0
  Author: Max Reitz <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/blkverify.c

  Log Message:
  -----------
  blkverify: Catch bs->exact_filename overflow

The bs->exact_filename field may not be sufficient to store the full
blkverify node filename. In this case, we should not generate a filename
at all instead of an unusable one.

Cc: address@hidden
Reported-by: Qu Wenruo <address@hidden>
Signed-off-by: Max Reitz <address@hidden>
Message-id: address@hidden
Reviewed-by: Alberto Garcia <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: f69165a8feca055cf4a37d13ab0fc5beec3cb372
      
https://github.com/qemu/qemu/commit/f69165a8feca055cf4a37d13ab0fc5beec3cb372
  Author: Max Reitz <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/nbd.c
    M block/nfs.c
    M block/sheepdog.c
    M block/ssh.c

  Log Message:
  -----------
  block: Do not strcmp() with NULL uri->scheme

uri_parse(...)->scheme may be NULL. In fact, probably every field may be
NULL, and the callers do test this for all of the other fields but not
for scheme (except for block/gluster.c; block/vxhs.c does not access
that field at all).

We can easily fix this by using g_strcmp0() instead of strcmp().

Cc: address@hidden
Signed-off-by: Max Reitz <address@hidden>
Message-id: address@hidden
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: 2a245709099e98bca638694c182f1e5627567df7
      
https://github.com/qemu/qemu/commit/2a245709099e98bca638694c182f1e5627567df7
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: don't shadow opts variable in img_dd()

It's confusing when two different variables have the same name in one
function.

Cc: Reda Sallahi <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: 704e41ba789ad88158f051eee648d7087beffac7
      
https://github.com/qemu/qemu/commit/704e41ba789ad88158f051eee648d7087beffac7
  Author: Kevin Wolf <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/blkdebug.c
    M block/blkreplay.c
    M block/blkverify.c
    M block/block-backend.c
    M block/file-posix.c
    M block/io.c
    M block/iscsi.c
    M block/mirror.c
    M block/nbd-client.c
    M block/nbd-client.h
    M block/nbd.c
    M block/nfs.c
    M block/qcow2.c
    M block/qed.c
    M block/raw-format.c
    M block/rbd.c
    M block/sheepdog.c
    M block/ssh.c
    M blockjob.c
    M include/block/block.h
    M include/block/block_int.h
    M include/block/blockjob.h
    M include/sysemu/block-backend.h
    M qemu-img.c
    M qemu-io-cmds.c

  Log Message:
  -----------
  Merge remote-tracking branch 'mreitz/tags/pull-block-2017-06-26' into 
queue-block

Block patches for the block queue

# gpg: Signature made Mon Jun 26 14:56:24 2017 CEST
# gpg:                using RSA key 0xF407DB0061D5CF40
# gpg: Good signature from "Max Reitz <address@hidden>"
# Primary key fingerprint: 91BE B60A 30DB 3E88 57D1  1829 F407 DB00 61D5 CF40

* mreitz/tags/pull-block-2017-06-26:
  qemu-img: don't shadow opts variable in img_dd()
  block: Do not strcmp() with NULL uri->scheme
  blkverify: Catch bs->exact_filename overflow
  blkdebug: Catch bs->exact_filename overflow
  fix: avoid an infinite loop or a dangling pointer problem in img_commit
  block: change variable names in BlockDriverState

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


  Commit: 054914f6461ce9d3427af6527ef3e5b07311c86b
      
https://github.com/qemu/qemu/commit/054914f6461ce9d3427af6527ef3e5b07311c86b
  Author: Peter Maydell <address@hidden>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M block/Makefile.objs
    M block/blkdebug.c
    M block/blkreplay.c
    M block/blkverify.c
    M block/block-backend.c
    M block/commit.c
    M block/file-posix.c
    M block/io.c
    M block/iscsi.c
    M block/mirror.c
    M block/nbd-client.c
    M block/nbd-client.h
    M block/nbd.c
    M block/nfs.c
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/qcow2.h
    M block/qed-cluster.c
    R block/qed-gencb.c
    M block/qed-table.c
    M block/qed.c
    M block/qed.h
    M block/raw-format.c
    M block/rbd.c
    M block/sheepdog.c
    M block/ssh.c
    M block/throttle-groups.c
    M block/trace-events
    M blockjob.c
    M hw/block/nvme.c
    M hw/block/nvme.h
    M include/block/block.h
    M include/block/block_int.h
    M include/block/blockjob.h
    M include/sysemu/block-backend.h
    M migration/savevm.c
    M qemu-img.c
    M qemu-io-cmds.c
    M qemu-options.hx
    M tests/qemu-iotests/068
    M tests/qemu-iotests/068.out
    A tests/qemu-iotests/185
    A tests/qemu-iotests/185.out
    M tests/qemu-iotests/common.qemu
    M tests/qemu-iotests/group

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

Block layer patches

# gpg: Signature made Mon 26 Jun 2017 14:07:32 BST
# gpg:                using RSA key 0x7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <address@hidden>"
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream: (60 commits)
  qemu-img: don't shadow opts variable in img_dd()
  block: Do not strcmp() with NULL uri->scheme
  blkverify: Catch bs->exact_filename overflow
  blkdebug: Catch bs->exact_filename overflow
  fix: avoid an infinite loop or a dangling pointer problem in img_commit
  block: change variable names in BlockDriverState
  block: Remove bdrv_aio_readv/writev/flush()
  qed: Use bdrv_co_* for coroutine_fns
  qed: Add coroutine_fn to I/O path functions
  qed: Use a coroutine for need_check_timer
  qed: Simplify request handling
  qed: Use CoQueue for serialising allocations
  qed: Implement .bdrv_co_readv/writev
  qed: Remove recursion in qed_aio_next_io()
  qed: Remove ret argument from qed_aio_next_io()
  qed: Add return value to qed_aio_read/write_data()
  qed: Add return value to qed_aio_write_inplace/alloc()
  qed: Add return value to qed_aio_write_cow()
  qed: Add return value to qed_aio_write_main()
  qed: Add return value to qed_aio_write_l2_update()
  ...

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


Compare: https://github.com/qemu/qemu/compare/b01a4fd3bd7d...054914f6461c

reply via email to

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