qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/8] Block patches
@ 2010-05-20 13:10 Kevin Wolf
  0 siblings, 0 replies; 31+ messages in thread
From: Kevin Wolf @ 2010-05-20 13:10 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

Hi Anthony,

this bunch of patches contains some fixes that I think qualify for stable,
especially the first two. Please cherry-pick them into stable-0.12 when you
have pulled:

468f932 block: fix sector comparism in multiwrite_req_compare
49eb7b7 virtio-blk: fix barrier support
5fdf2a6 block: fix aio_flush segfaults for read-only protocols (e.g. curl)

Kevin


The following changes since commit 5a4bb580cdb10b066f9fd67658b31cac4a4ea5e5:
  Richard Henderson (1):
        target-sparc: Simplify ICC generation.

are available in the git repository at:

  git://repo.or.cz/qemu/kevin.git for-anthony

Avi Kivity (1):
      block: fix aio_flush segfaults for read-only protocols (e.g. curl)

Christoph Hellwig (2):
      virtio-blk: fix barrier support
      block: fix sector comparism in multiwrite_req_compare

Kevin Wolf (1):
      vvfat: More build fixes with DEBUG

Nicholas Bellinger (2):
      block: Make find_image_format() return 'raw' BlockDriver for SG_IO devices
      block: Add SG_IO device check in refresh_total_sectors()

Riccardo Magliocchetti (1):
      vvfat: Fix compilation with DEBUG defined

Stefan Hajnoczi (1):
      virtio-blk: Avoid zeroing every request structure

 aio.c           |    4 +++-
 block.c         |   23 ++++++++++++++++++++++-
 block/vvfat.c   |   10 +++++++---
 hw/virtio-blk.c |   19 ++++++++++++++++---
 4 files changed, 48 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 0/8] Block patches
@ 2011-07-06 14:21 Kevin Wolf
  2011-07-12  9:14 ` Kevin Wolf
  2011-07-12 13:16 ` Anthony Liguori
  0 siblings, 2 replies; 31+ messages in thread
From: Kevin Wolf @ 2011-07-06 14:21 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

The following changes since commit 9312805d33e8b106bae356d13a8071fb37d75554:

  pxa2xx_lcd: add proper rotation support (2011-07-04 22:12:21 +0200)

are available in the git repository at:
  git://repo.or.cz/qemu/kevin.git for-anthony

Federico Simoncelli (1):
      qemu-img: Add cache command line option

Johannes Stezenbach (1):
      block/raw-posix: Linux compat-ioctl warning workaround

Kevin Wolf (3):
      Documentation: Remove outdated host_device note
      ide: Ignore reads during PIO in and writes during PIO out
      ide: Initialise buffers with zeros

Luiz Capitulino (2):
      block: drive_init(): Simplify interface type setting
      block: drive_init(): Improve CHS setting error message

Markus Armbruster (1):
      virtio-blk: Turn drive serial into a qdev property

 block/raw-posix.c    |   14 +++++++++
 blockdev.c           |   14 +++-----
 hw/ide/core.c        |   50 +++++++++++++++++++++++++-----
 hw/s390-virtio-bus.c |    4 ++-
 hw/s390-virtio-bus.h |    1 +
 hw/virtio-blk.c      |   29 ++++++++++++------
 hw/virtio-blk.h      |    2 +
 hw/virtio-pci.c      |    4 ++-
 hw/virtio-pci.h      |    1 +
 hw/virtio.h          |    3 +-
 qemu-img-cmds.hx     |    6 ++--
 qemu-img.c           |   80 +++++++++++++++++++++++++++++++++++++++++--------
 qemu-img.texi        |    6 ----
 13 files changed, 161 insertions(+), 53 deletions(-)

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2011-07-06 14:21 Kevin Wolf
@ 2011-07-12  9:14 ` Kevin Wolf
  2011-07-12 13:16 ` Anthony Liguori
  1 sibling, 0 replies; 31+ messages in thread
From: Kevin Wolf @ 2011-07-12  9:14 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: qemu-devel

Am 06.07.2011 16:21, schrieb Kevin Wolf:
> The following changes since commit 9312805d33e8b106bae356d13a8071fb37d75554:
> 
>   pxa2xx_lcd: add proper rotation support (2011-07-04 22:12:21 +0200)
> 
> are available in the git repository at:
>   git://repo.or.cz/qemu/kevin.git for-anthony
> 
> Federico Simoncelli (1):
>       qemu-img: Add cache command line option
> 
> Johannes Stezenbach (1):
>       block/raw-posix: Linux compat-ioctl warning workaround
> 
> Kevin Wolf (3):
>       Documentation: Remove outdated host_device note
>       ide: Ignore reads during PIO in and writes during PIO out
>       ide: Initialise buffers with zeros
> 
> Luiz Capitulino (2):
>       block: drive_init(): Simplify interface type setting
>       block: drive_init(): Improve CHS setting error message
> 
> Markus Armbruster (1):
>       virtio-blk: Turn drive serial into a qdev property
> 
>  block/raw-posix.c    |   14 +++++++++
>  blockdev.c           |   14 +++-----
>  hw/ide/core.c        |   50 +++++++++++++++++++++++++-----
>  hw/s390-virtio-bus.c |    4 ++-
>  hw/s390-virtio-bus.h |    1 +
>  hw/virtio-blk.c      |   29 ++++++++++++------
>  hw/virtio-blk.h      |    2 +
>  hw/virtio-pci.c      |    4 ++-
>  hw/virtio-pci.h      |    1 +
>  hw/virtio.h          |    3 +-
>  qemu-img-cmds.hx     |    6 ++--
>  qemu-img.c           |   80 +++++++++++++++++++++++++++++++++++++++++--------
>  qemu-img.texi        |    6 ----
>  13 files changed, 161 insertions(+), 53 deletions(-)

Ping?

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2011-07-06 14:21 Kevin Wolf
  2011-07-12  9:14 ` Kevin Wolf
@ 2011-07-12 13:16 ` Anthony Liguori
  1 sibling, 0 replies; 31+ messages in thread
From: Anthony Liguori @ 2011-07-12 13:16 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: qemu-devel

On 07/06/2011 09:21 AM, Kevin Wolf wrote:
> The following changes since commit 9312805d33e8b106bae356d13a8071fb37d75554:
>
>    pxa2xx_lcd: add proper rotation support (2011-07-04 22:12:21 +0200)

Pulled.  Thanks.

Regards,

Anthony Liguori

>
> are available in the git repository at:
>    git://repo.or.cz/qemu/kevin.git for-anthony
>
> Federico Simoncelli (1):
>        qemu-img: Add cache command line option
>
> Johannes Stezenbach (1):
>        block/raw-posix: Linux compat-ioctl warning workaround
>
> Kevin Wolf (3):
>        Documentation: Remove outdated host_device note
>        ide: Ignore reads during PIO in and writes during PIO out
>        ide: Initialise buffers with zeros
>
> Luiz Capitulino (2):
>        block: drive_init(): Simplify interface type setting
>        block: drive_init(): Improve CHS setting error message
>
> Markus Armbruster (1):
>        virtio-blk: Turn drive serial into a qdev property
>
>   block/raw-posix.c    |   14 +++++++++
>   blockdev.c           |   14 +++-----
>   hw/ide/core.c        |   50 +++++++++++++++++++++++++-----
>   hw/s390-virtio-bus.c |    4 ++-
>   hw/s390-virtio-bus.h |    1 +
>   hw/virtio-blk.c      |   29 ++++++++++++------
>   hw/virtio-blk.h      |    2 +
>   hw/virtio-pci.c      |    4 ++-
>   hw/virtio-pci.h      |    1 +
>   hw/virtio.h          |    3 +-
>   qemu-img-cmds.hx     |    6 ++--
>   qemu-img.c           |   80 +++++++++++++++++++++++++++++++++++++++++--------
>   qemu-img.texi        |    6 ----
>   13 files changed, 161 insertions(+), 53 deletions(-)
>
>

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 0/8] Block patches
@ 2013-04-05 13:28 Kevin Wolf
  0 siblings, 0 replies; 31+ messages in thread
From: Kevin Wolf @ 2013-04-05 13:28 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

The following changes since commit 162cbbd1736de2bca43fdefa7e98c54a361ee60d:

  Merge remote-tracking branch 'luiz/queue/qmp' into staging (2013-04-02 14:07:35 -0500)

are available in the git repository at:


  git://repo.or.cz/qemu/kevin.git for-anthony

for you to fetch changes up to 094e751448359417c712ed1395d151c79ccd2538:

  qcow2: Fix L1 write error handling in qcow2_update_snapshot_refcount (2013-04-05 13:17:49 +0200)

----------------------------------------------------------------
KONRAD Frederic (1):
      virtio-blk-x: fix configuration synchronization.

Kevin Wolf (3):
      usb-storage: Forward serial number to scsi-disk
      qcow2: Return real error in qcow2_update_snapshot_refcount
      qcow2: Fix L1 write error handling in qcow2_update_snapshot_refcount

Stefan Hajnoczi (4):
      block: fix I/O throttling accounting blind spot
      block: keep I/O throttling slice time constant
      block: drop duplicated slice extension code
      block: clean up I/O throttling wait_time code

 block.c                    | 49 +++++++++++++++++++++-------------------------
 block/qcow2-refcount.c     | 25 +++++++++++------------
 blockdev.c                 |  1 -
 hw/pci/pci-hotplug.c       |  2 +-
 hw/s390x/s390-virtio-bus.c |  4 ++--
 hw/s390x/s390-virtio-bus.h |  1 -
 hw/s390x/virtio-ccw.c      |  4 ++--
 hw/s390x/virtio-ccw.h      |  1 -
 hw/scsi-bus.c              |  8 ++++++--
 hw/scsi.h                  |  3 ++-
 hw/usb/dev-storage.c       |  2 +-
 hw/virtio-blk.c            |  7 -------
 hw/virtio-blk.h            |  2 --
 hw/virtio-pci.c            |  7 ++++---
 hw/virtio-pci.h            |  1 -
 include/block/block_int.h  |  3 +--
 16 files changed, 54 insertions(+), 66 deletions(-)

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 0/8] Block patches
@ 2013-07-15 11:16 Kevin Wolf
  0 siblings, 0 replies; 31+ messages in thread
From: Kevin Wolf @ 2013-07-15 11:16 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

The following changes since commit c3cb8e77804313e1be99b5f28a34a346736707a5:

  ioport: remove LITTLE_ENDIAN mark for portio (2013-07-12 14:37:47 -0500)

are available in the git repository at:

  git://repo.or.cz/qemu/kevin.git for-anthony

for you to fetch changes up to a62eaa26c1d6d48fbdc3ac1d32bd1314f5fdc8c9:

  ahci: Fix FLUSH command (2013-07-15 11:53:55 +0200)

----------------------------------------------------------------
Kevin Wolf (6):
      block: Don't parse protocol from file.filename
      qemu-iotests: Update 051 reference output
      block: Add return value for bdrv_flush_all()
      cpus: Add return value for vm_stop()
      migration: Fail migration on bdrv_flush_all() error
      ahci: Fix FLUSH command

Stefan Hajnoczi (2):
      blockdev: add sync mode to drive-backup QMP command
      block: add drive_backup HMP command

 block.c                          |  27 ++++++---
 block/sheepdog.c                 |   2 +-
 blockdev.c                       |   6 ++
 cpus.c                           |  20 ++++---
 hmp-commands.hx                  |  20 +++++++
 hmp.c                            |  28 +++++++++
 hmp.h                            |   1 +
 hw/ide/ahci.c                    |   8 ++-
 hw/ide/core.c                    |   9 +++
 hw/ide/internal.h                |   1 +
 include/block/block.h            |   5 +-
 include/sysemu/sysemu.h          |   4 +-
 migration.c                      |  17 +++++-
 qapi-schema.json                 |   7 ++-
 qemu-img.c                       |   4 +-
 qmp-commands.hx                  |   6 +-
 stubs/vm-stop.c                  |   2 +-
 tests/qemu-iotests/051           |  12 ++++
 tests/qemu-iotests/051.out       | 121 ++++++++++++++++++++++++++++-----------
 tests/qemu-iotests/055           |  36 +++++++-----
 tests/qemu-iotests/common.filter |   2 +-
 21 files changed, 262 insertions(+), 76 deletions(-)

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 0/8] Block patches
@ 2013-10-07 11:28 Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 1/8] qcow2: Correct endianness in overlap check Stefan Hajnoczi
                   ` (7 more replies)
  0 siblings, 8 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Hajnoczi, Anthony Liguori

The following changes since commit a684f3cf9b9b9c3cb82be87aafc463de8974610c:

  Merge remote-tracking branch 'kraxel/seabios-1.7.3.2' into staging (2013-09-30 17:15:27 -0500)

are available in the git repository at:


  git://github.com/stefanha/qemu.git block

for you to fetch changes up to d4cea8dfb99153803164915c7a1109549ad3da9c:

  block: use correct filename (2013-10-07 13:23:19 +0200)

----------------------------------------------------------------
Dunrong Huang (2):
      block: use correct filename for error report
      block: use correct filename

Jeff Cody (1):
      block: vhdx - add migration blocker

Max Reitz (5):
      qcow2: Correct endianness in overlap check
      qcow2: CHECK_OFLAG_COPIED is obsolete
      qcow2: Switch L1 table in a single sequence
      qcow2: Free allocated L2 cluster on error
      qemu-iotests: Correct 026 output

 block.c                            |  8 ++++----
 block/qcow2-cluster.c              | 11 +++++++++--
 block/qcow2-refcount.c             |  8 +++-----
 block/vhdx.c                       | 10 ++++++++++
 tests/qemu-iotests/026.out         | 32 ++++++++------------------------
 tests/qemu-iotests/026.out.nocache | 32 ++++++++------------------------
 6 files changed, 42 insertions(+), 59 deletions(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 1/8] qcow2: Correct endianness in overlap check
  2013-10-07 11:28 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi
@ 2013-10-07 11:28 ` Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 2/8] qcow2: CHECK_OFLAG_COPIED is obsolete Stefan Hajnoczi
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Hajnoczi, Anthony Liguori, Max Reitz

From: Max Reitz <mreitz@redhat.com>

If an inactive L1 table is loaded from disk, its entries are in big
endian and have to be converted to host byte order before using them.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block/qcow2-refcount.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c
index d2b7064..364eeba 100644
--- a/block/qcow2-refcount.c
+++ b/block/qcow2-refcount.c
@@ -1733,8 +1733,8 @@ int qcow2_check_metadata_overlap(BlockDriverState *bs, int chk, int64_t offset,
             }
 
             for (j = 0; j < l1_sz; j++) {
-                if ((l1[j] & L1E_OFFSET_MASK) &&
-                    overlaps_with(l1[j] & L1E_OFFSET_MASK, s->cluster_size)) {
+                uint64_t l2_ofs = be64_to_cpu(l1[j]) & L1E_OFFSET_MASK;
+                if (l2_ofs && overlaps_with(l2_ofs, s->cluster_size)) {
                     g_free(l1);
                     return QCOW2_OL_INACTIVE_L2;
                 }
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 2/8] qcow2: CHECK_OFLAG_COPIED is obsolete
  2013-10-07 11:28 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 1/8] qcow2: Correct endianness in overlap check Stefan Hajnoczi
@ 2013-10-07 11:28 ` Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 3/8] block: use correct filename for error report Stefan Hajnoczi
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Hajnoczi, Anthony Liguori, Max Reitz

From: Max Reitz <mreitz@redhat.com>

CHECK_OFLAG_COPIED as a parameter to check_refcounts_l1 and
check_refcounts_l2 is obselete now, since the OFLAG_COPIED consistency
check is actually no longer performed by these functions (but by
check_oflag_copied).

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block/qcow2-refcount.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c
index 364eeba..2d67885 100644
--- a/block/qcow2-refcount.c
+++ b/block/qcow2-refcount.c
@@ -1034,7 +1034,6 @@ static void inc_refcounts(BlockDriverState *bs,
 
 /* Flags for check_refcounts_l1() and check_refcounts_l2() */
 enum {
-    CHECK_OFLAG_COPIED = 0x1,   /* check QCOW_OFLAG_COPIED matches refcount */
     CHECK_FRAG_INFO = 0x2,      /* update BlockFragInfo counters */
 };
 
@@ -1481,8 +1480,7 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvCheckResult *res,
 
     /* current L1 table */
     ret = check_refcounts_l1(bs, res, refcount_table, nb_clusters,
-                             s->l1_table_offset, s->l1_size,
-                             CHECK_OFLAG_COPIED | CHECK_FRAG_INFO);
+                             s->l1_table_offset, s->l1_size, CHECK_FRAG_INFO);
     if (ret < 0) {
         goto fail;
     }
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 3/8] block: use correct filename for error report
  2013-10-07 11:28 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 1/8] qcow2: Correct endianness in overlap check Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 2/8] qcow2: CHECK_OFLAG_COPIED is obsolete Stefan Hajnoczi
@ 2013-10-07 11:28 ` Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 4/8] block: vhdx - add migration blocker Stefan Hajnoczi
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Hajnoczi, Dunrong Huang, Anthony Liguori

From: Dunrong Huang <riegamaths@gmail.com>

The content filename point to will be erased by qemu_opts_absorb_qdict()
in raw_open_common() in drv->bdrv_file_open()

So it's better to use bs->filename.

Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block.c b/block.c
index 93e113a..e2d9936 100644
--- a/block.c
+++ b/block.c
@@ -808,8 +808,8 @@ static int bdrv_open_common(BlockDriverState *bs, BlockDriverState *file,
     if (ret < 0) {
         if (error_is_set(&local_err)) {
             error_propagate(errp, local_err);
-        } else if (filename) {
-            error_setg_errno(errp, -ret, "Could not open '%s'", filename);
+        } else if (bs->filename[0]) {
+            error_setg_errno(errp, -ret, "Could not open '%s'", bs->filename);
         } else {
             error_setg_errno(errp, -ret, "Could not open image");
         }
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 4/8] block: vhdx - add migration blocker
  2013-10-07 11:28 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi
                   ` (2 preceding siblings ...)
  2013-10-07 11:28 ` [Qemu-devel] [PULL 3/8] block: use correct filename for error report Stefan Hajnoczi
@ 2013-10-07 11:28 ` Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 5/8] qcow2: Switch L1 table in a single sequence Stefan Hajnoczi
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Jeff Cody, Stefan Hajnoczi, Anthony Liguori

From: Jeff Cody <jcody@redhat.com>

This blocks migration for VHDX image files, until the
functionality can be supported.

Signed-off-by: Jeff Cody <jcody@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block/vhdx.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/block/vhdx.c b/block/vhdx.c
index b8aa49c..6cb0412 100644
--- a/block/vhdx.c
+++ b/block/vhdx.c
@@ -20,6 +20,7 @@
 #include "qemu/module.h"
 #include "qemu/crc32c.h"
 #include "block/vhdx.h"
+#include "migration/migration.h"
 
 
 /* Several metadata and region table data entries are identified by
@@ -159,6 +160,7 @@ typedef struct BDRVVHDXState {
     VHDXParentLocatorHeader parent_header;
     VHDXParentLocatorEntry *parent_entries;
 
+    Error *migration_blocker;
 } BDRVVHDXState;
 
 uint32_t vhdx_checksum_calc(uint32_t crc, uint8_t *buf, size_t size,
@@ -806,6 +808,12 @@ static int vhdx_open(BlockDriverState *bs, QDict *options, int flags,
 
     /* TODO: differencing files, write */
 
+    /* Disable migration when VHDX images are used */
+    error_set(&s->migration_blocker,
+            QERR_BLOCK_FORMAT_FEATURE_NOT_SUPPORTED,
+            "vhdx", bs->device_name, "live migration");
+    migrate_add_blocker(s->migration_blocker);
+
     return 0;
 fail:
     qemu_vfree(s->headers[0]);
@@ -952,6 +960,8 @@ static void vhdx_close(BlockDriverState *bs)
     qemu_vfree(s->headers[1]);
     qemu_vfree(s->bat);
     qemu_vfree(s->parent_entries);
+    migrate_del_blocker(s->migration_blocker);
+    error_free(s->migration_blocker);
 }
 
 static BlockDriver bdrv_vhdx = {
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 5/8] qcow2: Switch L1 table in a single sequence
  2013-10-07 11:28 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi
                   ` (3 preceding siblings ...)
  2013-10-07 11:28 ` [Qemu-devel] [PULL 4/8] block: vhdx - add migration blocker Stefan Hajnoczi
@ 2013-10-07 11:28 ` Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 6/8] qcow2: Free allocated L2 cluster on error Stefan Hajnoczi
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Hajnoczi, Anthony Liguori, Max Reitz

From: Max Reitz <mreitz@redhat.com>

Switching the L1 table in memory should be an atomic operation, as far
as possible. Calling qcow2_free_clusters on the old L1 table on disk is
not a good idea when the old L1 table is no longer valid and the address
to the new one hasn't yet been written into the corresponding
BDRVQcowState field. To be more specific, this can lead to segfaults due
to qcow2_check_metadata_overlap trying to access the L1 table during the
free operation.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block/qcow2-cluster.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
index 39323ac..2ed45f0 100644
--- a/block/qcow2-cluster.c
+++ b/block/qcow2-cluster.c
@@ -35,6 +35,7 @@ int qcow2_grow_l1_table(BlockDriverState *bs, uint64_t min_size,
     BDRVQcowState *s = bs->opaque;
     int new_l1_size2, ret, i;
     uint64_t *new_l1_table;
+    int64_t old_l1_table_offset, old_l1_size;
     int64_t new_l1_table_offset, new_l1_size;
     uint8_t data[12];
 
@@ -106,11 +107,13 @@ int qcow2_grow_l1_table(BlockDriverState *bs, uint64_t min_size,
         goto fail;
     }
     g_free(s->l1_table);
-    qcow2_free_clusters(bs, s->l1_table_offset, s->l1_size * sizeof(uint64_t),
-                        QCOW2_DISCARD_OTHER);
+    old_l1_table_offset = s->l1_table_offset;
     s->l1_table_offset = new_l1_table_offset;
     s->l1_table = new_l1_table;
+    old_l1_size = s->l1_size;
     s->l1_size = new_l1_size;
+    qcow2_free_clusters(bs, old_l1_table_offset, old_l1_size * sizeof(uint64_t),
+                        QCOW2_DISCARD_OTHER);
     return 0;
  fail:
     g_free(new_l1_table);
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 6/8] qcow2: Free allocated L2 cluster on error
  2013-10-07 11:28 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi
                   ` (4 preceding siblings ...)
  2013-10-07 11:28 ` [Qemu-devel] [PULL 5/8] qcow2: Switch L1 table in a single sequence Stefan Hajnoczi
@ 2013-10-07 11:28 ` Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 7/8] qemu-iotests: Correct 026 output Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 8/8] block: use correct filename Stefan Hajnoczi
  7 siblings, 0 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Hajnoczi, Anthony Liguori, Max Reitz

From: Max Reitz <mreitz@redhat.com>

If an error occurs in l2_allocate, the allocated (but unused) L2 cluster
should be freed.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block/qcow2-cluster.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
index 2ed45f0..0fd26bb 100644
--- a/block/qcow2-cluster.c
+++ b/block/qcow2-cluster.c
@@ -273,6 +273,10 @@ fail:
         qcow2_cache_put(bs, s->l2_table_cache, (void**) table);
     }
     s->l1_table[l1_index] = old_l2_offset;
+    if (l2_offset > 0) {
+        qcow2_free_clusters(bs, l2_offset, s->l2_size * sizeof(uint64_t),
+                            QCOW2_DISCARD_ALWAYS);
+    }
     return ret;
 }
 
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 7/8] qemu-iotests: Correct 026 output
  2013-10-07 11:28 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi
                   ` (5 preceding siblings ...)
  2013-10-07 11:28 ` [Qemu-devel] [PULL 6/8] qcow2: Free allocated L2 cluster on error Stefan Hajnoczi
@ 2013-10-07 11:28 ` Stefan Hajnoczi
  2013-10-07 11:28 ` [Qemu-devel] [PULL 8/8] block: use correct filename Stefan Hajnoczi
  7 siblings, 0 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Hajnoczi, Anthony Liguori, Max Reitz

From: Max Reitz <mreitz@redhat.com>

Because l2_allocate now frees the unused L2 cluster on error, the
according test cases in 026 don't result in one leaked cluster anymore.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 tests/qemu-iotests/026.out         | 32 ++++++++------------------------
 tests/qemu-iotests/026.out.nocache | 32 ++++++++------------------------
 2 files changed, 16 insertions(+), 48 deletions(-)

diff --git a/tests/qemu-iotests/026.out b/tests/qemu-iotests/026.out
index 0764389..1504579 100644
--- a/tests/qemu-iotests/026.out
+++ b/tests/qemu-iotests/026.out
@@ -5,16 +5,12 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
 
 Event: l1_update; errno: 5; imm: off; once: on; write 
 write failed: Input/output error
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l1_update; errno: 5; imm: off; once: on; write -b
 write failed: Input/output error
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l1_update; errno: 5; imm: off; once: off; write 
@@ -33,16 +29,12 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
 
 Event: l1_update; errno: 28; imm: off; once: on; write 
 write failed: No space left on device
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l1_update; errno: 28; imm: off; once: on; write -b
 write failed: No space left on device
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l1_update; errno: 28; imm: off; once: off; write 
@@ -181,16 +173,12 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
 
 Event: l2_alloc.write; errno: 5; imm: off; once: on; write 
 write failed: Input/output error
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l2_alloc.write; errno: 5; imm: off; once: on; write -b
 write failed: Input/output error
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l2_alloc.write; errno: 5; imm: off; once: off; write 
@@ -207,16 +195,12 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
 
 Event: l2_alloc.write; errno: 28; imm: off; once: on; write 
 write failed: No space left on device
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l2_alloc.write; errno: 28; imm: off; once: on; write -b
 write failed: No space left on device
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l2_alloc.write; errno: 28; imm: off; once: off; write 
diff --git a/tests/qemu-iotests/026.out.nocache b/tests/qemu-iotests/026.out.nocache
index 33bad0d..c9d242e 100644
--- a/tests/qemu-iotests/026.out.nocache
+++ b/tests/qemu-iotests/026.out.nocache
@@ -5,16 +5,12 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
 
 Event: l1_update; errno: 5; imm: off; once: on; write 
 write failed: Input/output error
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l1_update; errno: 5; imm: off; once: on; write -b
 write failed: Input/output error
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l1_update; errno: 5; imm: off; once: off; write 
@@ -33,16 +29,12 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
 
 Event: l1_update; errno: 28; imm: off; once: on; write 
 write failed: No space left on device
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l1_update; errno: 28; imm: off; once: on; write -b
 write failed: No space left on device
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l1_update; errno: 28; imm: off; once: off; write 
@@ -189,16 +181,12 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
 
 Event: l2_alloc.write; errno: 5; imm: off; once: on; write 
 write failed: Input/output error
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l2_alloc.write; errno: 5; imm: off; once: on; write -b
 write failed: Input/output error
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l2_alloc.write; errno: 5; imm: off; once: off; write 
@@ -215,16 +203,12 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824
 
 Event: l2_alloc.write; errno: 28; imm: off; once: on; write 
 write failed: No space left on device
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l2_alloc.write; errno: 28; imm: off; once: on; write -b
 write failed: No space left on device
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+No errors were found on the image.
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 
 
 Event: l2_alloc.write; errno: 28; imm: off; once: off; write 
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 8/8] block: use correct filename
  2013-10-07 11:28 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi
                   ` (6 preceding siblings ...)
  2013-10-07 11:28 ` [Qemu-devel] [PULL 7/8] qemu-iotests: Correct 026 output Stefan Hajnoczi
@ 2013-10-07 11:28 ` Stefan Hajnoczi
  7 siblings, 0 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Hajnoczi, Dunrong Huang, Anthony Liguori

From: Dunrong Huang <riegamaths@gmail.com>

The content filename point to may be erased by qemu_opts_absorb_qdict()
in raw_open_common() in drv->bdrv_file_open()

So it's better to use bs->filename.

Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block.c b/block.c
index e2d9936..d7ca37e 100644
--- a/block.c
+++ b/block.c
@@ -824,8 +824,8 @@ static int bdrv_open_common(BlockDriverState *bs, BlockDriverState *file,
 
 #ifndef _WIN32
     if (bs->is_temporary) {
-        assert(filename != NULL);
-        unlink(filename);
+        assert(bs->filename[0] != '\0');
+        unlink(bs->filename);
     }
 #endif
     return 0;
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 0/8] Block patches
@ 2014-01-31 21:19 Stefan Hajnoczi
  2014-02-05 16:38 ` Peter Maydell
  0 siblings, 1 reply; 31+ messages in thread
From: Stefan Hajnoczi @ 2014-01-31 21:19 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Anthony Liguori

The following changes since commit 89e4a51ca9546a7bbe1998c4e3d4a3ac3a0c19be:

  Merge remote-tracking branch 'stefanha/tags/tracing-pull-request' into staging (2014-01-31 11:13:08 +0000)

are available in the git repository at:


  git://github.com/stefanha/qemu.git tags/block-pull-request

for you to fetch changes up to 1b7650ef2f63d53cf89af25a9f323323cf2423a7:

  qemu-iotests: only run 071 on qcow2 (2014-01-31 22:05:03 +0100)

----------------------------------------------------------------
Block pull request

----------------------------------------------------------------
Daniel P. Berrange (1):
      Describe flaws in qcow/qcow2 encryption in the docs

Fam Zheng (1):
      qemu-iotests: Drop assert_no_active_commit in case 040

Jeff Cody (2):
      block: remove QED .bdrv_make_empty implementation
      block: remove qcow2 .bdrv_make_empty implementation

Markus Armbruster (2):
      block/vhdx: Error checking fixes
      dataplane: Comment fix

Peter Lieven (1):
      block/vmdk: add basic .bdrv_check support

Stefan Hajnoczi (1):
      qemu-iotests: only run 071 on qcow2

 block/qcow2.c                   | 21 ------------------
 block/qed.c                     |  6 ------
 block/vhdx-log.c                |  4 ++--
 block/vhdx.c                    |  8 +++----
 block/vmdk.c                    | 48 +++++++++++++++++++++++++++++++++++++++++
 hw/block/dataplane/virtio-blk.c |  2 +-
 qemu-doc.texi                   | 23 +++++++++++++++++---
 qemu-img.texi                   | 23 +++++++++++++++++---
 tests/qemu-iotests/040          | 28 +++++++++++-------------
 tests/qemu-iotests/071          |  2 +-
 10 files changed, 108 insertions(+), 57 deletions(-)

-- 
1.8.5.3

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2014-01-31 21:19 Stefan Hajnoczi
@ 2014-02-05 16:38 ` Peter Maydell
  0 siblings, 0 replies; 31+ messages in thread
From: Peter Maydell @ 2014-02-05 16:38 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: QEMU Developers, Anthony Liguori

On 31 January 2014 21:19, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit 89e4a51ca9546a7bbe1998c4e3d4a3ac3a0c19be:
>
>   Merge remote-tracking branch 'stefanha/tags/tracing-pull-request' into staging (2014-01-31 11:13:08 +0000)
>
> are available in the git repository at:
>
>
>   git://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to 1b7650ef2f63d53cf89af25a9f323323cf2423a7:
>
>   qemu-iotests: only run 071 on qcow2 (2014-01-31 22:05:03 +0100)

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 0/8] Block patches
@ 2016-07-18 16:59 Stefan Hajnoczi
  2016-07-19  8:01 ` Peter Maydell
  0 siblings, 1 reply; 31+ messages in thread
From: Stefan Hajnoczi @ 2016-07-18 16:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Stefan Hajnoczi

The following changes since commit 3913d3707e3debfbf0d2d014a1a793394993b088:

  Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.7-20160718' into staging (2016-07-18 11:24:15 +0100)

are available in the git repository at:

  git://github.com/stefanha/qemu.git tags/block-pull-request

for you to fetch changes up to e1029ae26d96d5de78c2d9af5eddcea92e73a46a:

  MAINTAINERS: Add include/block/aio.h to block I/O path section (2016-07-18 15:10:52 +0100)

----------------------------------------------------------------

This is not quite a v2 because I have added more patches.  "linux-aio: share
one LinuxAioState within an AioContext" is now fixed under mingw.

----------------------------------------------------------------

Cao jin (3):
  aio_ctx_check: follow CODING_STYLE
  aio-posix: remove useless parameter
  virtio-blk: dataplane cleanup

Fam Zheng (1):
  MAINTAINERS: Add include/block/aio.h to block I/O path section

Paolo Bonzini (1):
  linux-aio: share one LinuxAioState within an AioContext

Roman Pen (1):
  linux-aio: prevent submitting more than MAX_EVENTS

Stefan Hajnoczi (1):
  checkpatch: consider git extended headers valid patches

Vladimir Sementsov-Ogievskiy (1):
  spec/parallels: fix a mistake

 MAINTAINERS                     |   1 +
 aio-posix.c                     |   3 +-
 aio-win32.c                     |   2 +-
 async.c                         |  33 ++++++++---
 block/linux-aio.c               |  36 +++++++-----
 block/raw-aio.h                 |  68 -----------------------
 block/raw-posix.c               | 119 +++++-----------------------------------
 block/raw-win32.c               |   2 +-
 block/win32-aio.c               |   2 +-
 docs/specs/parallels.txt        |   2 +-
 hw/block/dataplane/virtio-blk.c |   6 +-
 include/block/aio.h             |  15 ++++-
 include/block/raw-aio.h         |  68 +++++++++++++++++++++++
 scripts/checkpatch.pl           |   5 ++
 14 files changed, 158 insertions(+), 204 deletions(-)
 delete mode 100644 block/raw-aio.h
 create mode 100644 include/block/raw-aio.h

-- 
2.7.4

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2016-07-18 16:59 Stefan Hajnoczi
@ 2016-07-19  8:01 ` Peter Maydell
  0 siblings, 0 replies; 31+ messages in thread
From: Peter Maydell @ 2016-07-19  8:01 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: QEMU Developers

On 18 July 2016 at 17:59, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit 3913d3707e3debfbf0d2d014a1a793394993b088:
>
>   Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.7-20160718' into staging (2016-07-18 11:24:15 +0100)
>
> are available in the git repository at:
>
>   git://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to e1029ae26d96d5de78c2d9af5eddcea92e73a46a:
>
>   MAINTAINERS: Add include/block/aio.h to block I/O path section (2016-07-18 15:10:52 +0100)
>
> ----------------------------------------------------------------
>
> This is not quite a v2 because I have added more patches.  "linux-aio: share
> one LinuxAioState within an AioContext" is now fixed under mingw.
>
> ----------------------------------------------------------------

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 0/8] Block patches
@ 2018-05-12  9:28 Stefan Hajnoczi
  2018-05-12  9:42 ` no-reply
                   ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Stefan Hajnoczi @ 2018-05-12  9:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-block, Peter Maydell

The following changes since commit e5cd695266c5709308aa95b1baae499e4b5d4544:

  Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-05-08 17:05:58 +0100)

are available in the Git repository at:

  git://github.com/stefanha/qemu.git tags/block-pull-request

for you to fetch changes up to 31be8a2a97ecba7d31a82932286489cac318e9e9:

  block/file-posix: add x-check-page-cache=on|off option (2018-05-11 16:43:05 +0100)

----------------------------------------------------------------
Block pull request

 * Support -drive cache.direct=off live migration for POSIX files

----------------------------------------------------------------

Joe Perches (4):
  checkpatch: add a --strict check for utf-8 in commit logs
  checkpatch: ignore email headers better
  checkpatch: emit a warning on file add/move/delete
  checkpatch: reduce MAINTAINERS update message frequency

Pasi Savanainen (1):
  checkpatch: check utf-8 content from a commit log when it's missing
    from charset

Stefan Hajnoczi (3):
  blockjob: drop block_job_pause/resume_all()
  block/file-posix: implement bdrv_co_invalidate_cache() on Linux
  block/file-posix: add x-check-page-cache=on|off option

 qapi/block-core.json         |   7 +-
 include/block/blockjob_int.h |  14 ----
 block/file-posix.c           | 146 ++++++++++++++++++++++++++++++++++-
 blockjob.c                   |  27 -------
 scripts/checkpatch.pl        |  56 +++++++++++++-
 5 files changed, 202 insertions(+), 48 deletions(-)

-- 
2.17.0

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2018-05-12  9:28 Stefan Hajnoczi
@ 2018-05-12  9:42 ` no-reply
  2018-05-14 13:15 ` Peter Maydell
  2018-05-14 17:53 ` Peter Maydell
  2 siblings, 0 replies; 31+ messages in thread
From: no-reply @ 2018-05-12  9:42 UTC (permalink / raw)
  To: stefanha; +Cc: famz, qemu-devel, peter.maydell, qemu-block

Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20180512092824.13848-1-stefanha@redhat.com
Subject: [Qemu-devel] [PULL 0/8] Block patches

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]               patchew/20180512092824.13848-1-stefanha@redhat.com -> patchew/20180512092824.13848-1-stefanha@redhat.com
 t [tag update]            patchew/cover.1526081108.git.alistair.francis@wdc.com -> patchew/cover.1526081108.git.alistair.francis@wdc.com
Switched to a new branch 'test'
a35067253e block/file-posix: add x-check-page-cache=on|off option
c6c991d81f block/file-posix: implement bdrv_co_invalidate_cache() on Linux
3b9d04939d checkpatch: reduce MAINTAINERS update message frequency
92c27dd7e6 checkpatch: emit a warning on file add/move/delete
82e1381f3f checkpatch: ignore email headers better
63d8deac11 checkpatch: check utf-8 content from a commit log when it's missing from charset
7ecaae4f83 checkpatch: add a --strict check for utf-8 in commit logs
ca525fa2f4 blockjob: drop block_job_pause/resume_all()

=== OUTPUT BEGIN ===
Checking PATCH 1/8: blockjob: drop block_job_pause/resume_all()...
Checking PATCH 2/8: checkpatch: add a --strict check for utf-8 in commit logs...
WARNING: line over 80 characters
#109: FILE: scripts/checkpatch.pl:1420:
+			WARN("8-bit UTF-8 used in possible commit log\n" . $herecurr);

total: 0 errors, 1 warnings, 66 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 3/8: checkpatch: check utf-8 content from a commit log when it's missing from charset...
Checking PATCH 4/8: checkpatch: ignore email headers better...
Checking PATCH 5/8: checkpatch: emit a warning on file add/move/delete...
WARNING: line over 80 characters
#51: FILE: scripts/checkpatch.pl:1397:
+		     ($line =~ /\{\s*([\w\/\.\-]*)\s*\=\>\s*([\w\/\.\-]*)\s*\}/ &&

ERROR: line over 90 characters
#54: FILE: scripts/checkpatch.pl:1400:
+			WARN("added, moved or deleted file(s), does MAINTAINERS need updating?\n" . $herecurr);

total: 1 errors, 1 warnings, 24 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 6/8: checkpatch: reduce MAINTAINERS update message frequency...
Checking PATCH 7/8: block/file-posix: implement bdrv_co_invalidate_cache() on Linux...
WARNING: architecture specific defines should be avoided
#52: FILE: block/file-posix.c:2255:
+#if defined(__linux__)

total: 0 errors, 1 warnings, 70 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 8/8: block/file-posix: add x-check-page-cache=on|off option...
WARNING: line over 80 characters
#47: FILE: block/file-posix.c:423:
+            .help = "check that page cache was dropped on live migration (default: off)"

WARNING: architecture specific defines should be avoided
#120: FILE: block/file-posix.c:2264:
+#if defined(__linux__)

total: 0 errors, 2 warnings, 185 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2018-05-12  9:28 Stefan Hajnoczi
  2018-05-12  9:42 ` no-reply
@ 2018-05-14 13:15 ` Peter Maydell
  2018-05-14 16:02   ` Peter Maydell
  2018-05-14 17:53 ` Peter Maydell
  2 siblings, 1 reply; 31+ messages in thread
From: Peter Maydell @ 2018-05-14 13:15 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: QEMU Developers, Qemu-block

On 12 May 2018 at 10:28, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit e5cd695266c5709308aa95b1baae499e4b5d4544:
>
>   Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-05-08 17:05:58 +0100)
>
> are available in the Git repository at:
>
>   git://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to 31be8a2a97ecba7d31a82932286489cac318e9e9:
>
>   block/file-posix: add x-check-page-cache=on|off option (2018-05-11 16:43:05 +0100)
>
> ----------------------------------------------------------------
> Block pull request
>
>  * Support -drive cache.direct=off live migration for POSIX files
>
> ----------------------------------------------------------------

With this I get test failures for x86-64 Linux host (debug enabled):

MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}
gtester -k --verbose -m=quick tests/test-replication
TEST: tests/test-replication... (pid=15016)
  /replication/primary/read:                                           OK
  /replication/primary/write:                                          OK
  /replication/primary/start:                                          OK
  /replication/primary/stop:                                           OK
  /replication/primary/do_checkpoint:                                  OK
  /replication/primary/get_error_all:                                  OK
  /replication/secondary/read:                                         **
ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write:
assertion failed: (async_ret == 0)
FAIL
GTester: last random seed: R02Sf99d81651223b2fcdd0d7d601245eba3
(pid=15131)
  /replication/secondary/write:                                        OK
  /replication/secondary/start:                                        **
ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write:
assertion failed: (async_ret == 0)
FAIL
GTester: last random seed: R02S3e753c59c58d385aa2ea07c974c2e384
(pid=15309)
  /replication/secondary/stop:                                         **
ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write:
assertion failed: (async_ret == 0)
FAIL
GTester: last random seed: R02Sb6a8459edfa78efa369da3920846afa7
(pid=15439)
  /replication/secondary/do_checkpoint:                                **
ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write:
assertion failed: (async_ret == 0)
FAIL
GTester: last random seed: R02S4b2e6aa4e33bba4c5bdea0b9073ee966
(pid=15580)
  /replication/secondary/get_error_all:                                OK
FAIL: tests/test-replication
/home/petmay01/linaro/qemu-for-merges/tests/Makefile.include:892:
recipe for target 'check-tests/test-replication' failed


thanks
-- PMM

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2018-05-14 13:15 ` Peter Maydell
@ 2018-05-14 16:02   ` Peter Maydell
  0 siblings, 0 replies; 31+ messages in thread
From: Peter Maydell @ 2018-05-14 16:02 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: QEMU Developers, Qemu-block

On 14 May 2018 at 14:15, Peter Maydell <peter.maydell@linaro.org> wrote:
> On 12 May 2018 at 10:28, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>> The following changes since commit e5cd695266c5709308aa95b1baae499e4b5d4544:
>>
>>   Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-05-08 17:05:58 +0100)
>>
>> are available in the Git repository at:
>>
>>   git://github.com/stefanha/qemu.git tags/block-pull-request
>>
>> for you to fetch changes up to 31be8a2a97ecba7d31a82932286489cac318e9e9:
>>
>>   block/file-posix: add x-check-page-cache=on|off option (2018-05-11 16:43:05 +0100)
>>
>> ----------------------------------------------------------------
>> Block pull request
>>
>>  * Support -drive cache.direct=off live migration for POSIX files
>>
>> ----------------------------------------------------------------
>
> With this I get test failures for x86-64 Linux host (debug enabled):
>
> MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}
> gtester -k --verbose -m=quick tests/test-replication
> TEST: tests/test-replication... (pid=15016)
>   /replication/primary/read:                                           OK
>   /replication/primary/write:                                          OK
>   /replication/primary/start:                                          OK
>   /replication/primary/stop:                                           OK
>   /replication/primary/do_checkpoint:                                  OK
>   /replication/primary/get_error_all:                                  OK
>   /replication/secondary/read:                                         **
> ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write:
> assertion failed: (async_ret == 0)
> FAIL
> GTester: last random seed: R02Sf99d81651223b2fcdd0d7d601245eba3
> (pid=15131)
>   /replication/secondary/write:                                        OK
>   /replication/secondary/start:                                        **
> ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write:
> assertion failed: (async_ret == 0)
> FAIL

Sorry, this is a false alarm -- this test fails in this obscure way if the
system has run out of disk space and the write returns ENOSPC.

Ideally we should fix the test to print the errno. In the meantime I've
deleted some large log files and will retest the pull :-)

thanks
-- PMM

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2018-05-12  9:28 Stefan Hajnoczi
  2018-05-12  9:42 ` no-reply
  2018-05-14 13:15 ` Peter Maydell
@ 2018-05-14 17:53 ` Peter Maydell
  2 siblings, 0 replies; 31+ messages in thread
From: Peter Maydell @ 2018-05-14 17:53 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: QEMU Developers, Qemu-block

On 12 May 2018 at 10:28, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit e5cd695266c5709308aa95b1baae499e4b5d4544:
>
>   Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-05-08 17:05:58 +0100)
>
> are available in the Git repository at:
>
>   git://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to 31be8a2a97ecba7d31a82932286489cac318e9e9:
>
>   block/file-posix: add x-check-page-cache=on|off option (2018-05-11 16:43:05 +0100)
>
> ----------------------------------------------------------------
> Block pull request
>
>  * Support -drive cache.direct=off live migration for POSIX files
>

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 0/8] Block patches
@ 2019-05-10 13:02 Stefan Hajnoczi
  2019-05-10 14:24 ` Peter Maydell
  0 siblings, 1 reply; 31+ messages in thread
From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Peter Maydell, qemu-block, Max Reitz, Stefan Hajnoczi,
	Paolo Bonzini, Kevin Wolf

The following changes since commit 812b835fb4d23dd108b2f9802158472d50b73579:

  Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2019-05-07' into staging (2019-05-09 16:31:12 +0100)

are available in the Git repository at:

  https://github.com/stefanha/qemu.git tags/block-pull-request

for you to fetch changes up to e84125761f78919fe63616d9888ea45e72dc956f:

  docs: add Security chapter to the documentation (2019-05-10 10:53:52 +0100)

----------------------------------------------------------------
Pull request

----------------------------------------------------------------

Andrey Shinkevich (1):
  block/io.c: fix for the allocation failure

Jules Irenge (3):
  util/readline: add a space to fix errors by checkpatch tool
  util: readline: replace tab indent by four spaces to fix checkpatch
    errors
  util/readline: Add braces to fix checkpatch errors

Nikita Alekseev (1):
  block: Add coroutine_fn to bdrv_check_co_entry

Paolo Bonzini (1):
  aio-posix: ensure poll mode is left when aio_notify is called

Stefan Hajnoczi (2):
  docs: add Secure Coding Practices to developer docs
  docs: add Security chapter to the documentation

 Makefile                               |   2 +-
 block.c                                |   2 +-
 block/io.c                             |   2 +-
 util/aio-posix.c                       |  12 +-
 util/readline.c                        | 174 ++++++++++++++-----------
 docs/devel/index.rst                   |   1 +
 docs/devel/secure-coding-practices.rst | 106 +++++++++++++++
 docs/security.texi                     | 131 +++++++++++++++++++
 qemu-doc.texi                          |   3 +
 9 files changed, 347 insertions(+), 86 deletions(-)
 create mode 100644 docs/devel/secure-coding-practices.rst
 create mode 100644 docs/security.texi

-- 
2.21.0



^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2019-05-10 13:02 Stefan Hajnoczi
@ 2019-05-10 14:24 ` Peter Maydell
  0 siblings, 0 replies; 31+ messages in thread
From: Peter Maydell @ 2019-05-10 14:24 UTC (permalink / raw)
  To: Stefan Hajnoczi
  Cc: Fam Zheng, Kevin Wolf, Qemu-block, QEMU Developers, Max Reitz,
	Paolo Bonzini

On Fri, 10 May 2019 at 14:02, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> The following changes since commit 812b835fb4d23dd108b2f9802158472d50b73579:
>
>   Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2019-05-07' into staging (2019-05-09 16:31:12 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to e84125761f78919fe63616d9888ea45e72dc956f:
>
>   docs: add Security chapter to the documentation (2019-05-10 10:53:52 +0100)
>
> ----------------------------------------------------------------
> Pull request
>
> ----------------------------------------------------------------



Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/4.1
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 31+ messages in thread

* [Qemu-devel] [PULL 0/8] Block patches
@ 2019-06-21 13:23 Max Reitz
  2019-06-23 17:18 ` Peter Maydell
  0 siblings, 1 reply; 31+ messages in thread
From: Max Reitz @ 2019-06-21 13:23 UTC (permalink / raw)
  To: qemu-block; +Cc: Kevin Wolf, Peter Maydell, qemu-devel, Max Reitz

The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1:

  Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100)

are available in the Git repository at:

  https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21

for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472:

  iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200)

----------------------------------------------------------------
Block patches:
- The SSH block driver now uses libssh instead of libssh2
- The VMDK block driver gets read-only support for the seSparse
  subformat
- Various fixes

----------------------------------------------------------------
Anton Nefedov (1):
  iotest 134: test cluster-misaligned encrypted write

Klaus Birkelund Jensen (1):
  nvme: do not advertise support for unsupported arbitration mechanism

Max Reitz (1):
  iotests: Fix 205 for concurrent runs

Pino Toscano (1):
  ssh: switch from libssh2 to libssh

Sam Eiderman (3):
  vmdk: Fix comment regarding max l1_size coverage
  vmdk: Reduce the max bound for L1 table size
  vmdk: Add read-only support for seSparse snapshots

Vladimir Sementsov-Ogievskiy (1):
  blockdev: enable non-root nodes for transaction drive-backup source

 configure                                     |  65 +-
 block/Makefile.objs                           |   6 +-
 block/ssh.c                                   | 673 ++++++++++--------
 block/vmdk.c                                  | 372 +++++++++-
 blockdev.c                                    |   2 +-
 hw/block/nvme.c                               |   1 -
 .travis.yml                                   |   4 +-
 block/trace-events                            |  14 +-
 docs/qemu-block-drivers.texi                  |   2 +-
 .../dockerfiles/debian-win32-cross.docker     |   1 -
 .../dockerfiles/debian-win64-cross.docker     |   1 -
 tests/docker/dockerfiles/fedora.docker        |   4 +-
 tests/docker/dockerfiles/ubuntu.docker        |   2 +-
 tests/docker/dockerfiles/ubuntu1804.docker    |   2 +-
 tests/qemu-iotests/059.out                    |   2 +-
 tests/qemu-iotests/134                        |   9 +
 tests/qemu-iotests/134.out                    |  10 +
 tests/qemu-iotests/205                        |   2 +-
 tests/qemu-iotests/207                        |  54 +-
 tests/qemu-iotests/207.out                    |   2 +-
 20 files changed, 844 insertions(+), 384 deletions(-)

-- 
2.21.0



^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2019-06-21 13:23 [Qemu-devel] [PULL 0/8] Block patches Max Reitz
@ 2019-06-23 17:18 ` Peter Maydell
  2019-06-24 12:20   ` Max Reitz
  0 siblings, 1 reply; 31+ messages in thread
From: Peter Maydell @ 2019-06-23 17:18 UTC (permalink / raw)
  To: Max Reitz; +Cc: Kevin Wolf, QEMU Developers, Qemu-block

On Fri, 21 Jun 2019 at 14:23, Max Reitz <mreitz@redhat.com> wrote:
>
> The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1:
>
>   Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21
>
> for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472:
>
>   iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200)
>
> ----------------------------------------------------------------
> Block patches:
> - The SSH block driver now uses libssh instead of libssh2
> - The VMDK block driver gets read-only support for the seSparse
>   subformat
> - Various fixes
>

Hi; this failed to build on my s390 box:

/home/linux1/qemu/block/ssh.c: In function ‘check_host_key_knownhosts’:
/home/linux1/qemu/block/ssh.c:367:27: error: implicit declaration of
function ‘ssh_get_fingerprint_hash’
[-Werror=implicit-function-declaration]
             fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
                           ^
/home/linux1/qemu/block/ssh.c:367:13: error: nested extern declaration
of ‘ssh_get_fingerprint_hash’ [-Werror=nested-externs]
             fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
             ^
/home/linux1/qemu/block/ssh.c:367:25: error: assignment makes pointer
from integer without a cast [-Werror=int-conversion]
             fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
                         ^

It looks like that function was introduced in libssh 0.8.3, and this box
has 0.6.3. (configure has correctly not defined HAVE_LIBSSH_0_8
but this usage is inside a bit of code that's compiled even when
that is not defined.)

thanks
-- PMM


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2019-06-23 17:18 ` Peter Maydell
@ 2019-06-24 12:20   ` Max Reitz
  2019-06-24 13:15     ` Pino Toscano
  0 siblings, 1 reply; 31+ messages in thread
From: Max Reitz @ 2019-06-24 12:20 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Kevin Wolf, QEMU Developers, Qemu-block, Pino Toscano


[-- Attachment #1.1: Type: text/plain, Size: 2093 bytes --]

On 23.06.19 19:18, Peter Maydell wrote:
> On Fri, 21 Jun 2019 at 14:23, Max Reitz <mreitz@redhat.com> wrote:
>>
>> The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1:
>>
>>   Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100)
>>
>> are available in the Git repository at:
>>
>>   https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21
>>
>> for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472:
>>
>>   iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200)
>>
>> ----------------------------------------------------------------
>> Block patches:
>> - The SSH block driver now uses libssh instead of libssh2
>> - The VMDK block driver gets read-only support for the seSparse
>>   subformat
>> - Various fixes
>>
> 
> Hi; this failed to build on my s390 box:
> 
> /home/linux1/qemu/block/ssh.c: In function ‘check_host_key_knownhosts’:
> /home/linux1/qemu/block/ssh.c:367:27: error: implicit declaration of
> function ‘ssh_get_fingerprint_hash’
> [-Werror=implicit-function-declaration]
>              fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
>                            ^
> /home/linux1/qemu/block/ssh.c:367:13: error: nested extern declaration
> of ‘ssh_get_fingerprint_hash’ [-Werror=nested-externs]
>              fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
>              ^
> /home/linux1/qemu/block/ssh.c:367:25: error: assignment makes pointer
> from integer without a cast [-Werror=int-conversion]
>              fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
>                          ^
> 
> It looks like that function was introduced in libssh 0.8.3, and this box
> has 0.6.3. (configure has correctly not defined HAVE_LIBSSH_0_8
> but this usage is inside a bit of code that's compiled even when
> that is not defined.)

Pino, would you be OK with dropping that piece of code for pre-0.8 and
just replacing it with the else-error_setg()?

Max


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2019-06-24 12:20   ` Max Reitz
@ 2019-06-24 13:15     ` Pino Toscano
  2019-06-24 14:49       ` Max Reitz
  0 siblings, 1 reply; 31+ messages in thread
From: Pino Toscano @ 2019-06-24 13:15 UTC (permalink / raw)
  To: Max Reitz; +Cc: Kevin Wolf, Peter Maydell, QEMU Developers, Qemu-block


[-- Attachment #1.1: Type: text/plain, Size: 2519 bytes --]

On Monday, 24 June 2019 14:20:11 CEST Max Reitz wrote:
> On 23.06.19 19:18, Peter Maydell wrote:
> > On Fri, 21 Jun 2019 at 14:23, Max Reitz <mreitz@redhat.com> wrote:
> >>
> >> The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1:
> >>
> >>   Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100)
> >>
> >> are available in the Git repository at:
> >>
> >>   https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21
> >>
> >> for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472:
> >>
> >>   iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200)
> >>
> >> ----------------------------------------------------------------
> >> Block patches:
> >> - The SSH block driver now uses libssh instead of libssh2
> >> - The VMDK block driver gets read-only support for the seSparse
> >>   subformat
> >> - Various fixes
> >>
> > 
> > Hi; this failed to build on my s390 box:
> > 
> > /home/linux1/qemu/block/ssh.c: In function ‘check_host_key_knownhosts’:
> > /home/linux1/qemu/block/ssh.c:367:27: error: implicit declaration of
> > function ‘ssh_get_fingerprint_hash’
> > [-Werror=implicit-function-declaration]
> >              fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
> >                            ^
> > /home/linux1/qemu/block/ssh.c:367:13: error: nested extern declaration
> > of ‘ssh_get_fingerprint_hash’ [-Werror=nested-externs]
> >              fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
> >              ^
> > /home/linux1/qemu/block/ssh.c:367:25: error: assignment makes pointer
> > from integer without a cast [-Werror=int-conversion]
> >              fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
> >                          ^
> > 
> > It looks like that function was introduced in libssh 0.8.3, and this box
> > has 0.6.3. (configure has correctly not defined HAVE_LIBSSH_0_8
> > but this usage is inside a bit of code that's compiled even when
> > that is not defined.)

Oops, sorry, I did not test the latest versions with that old libssh.

> Pino, would you be OK with dropping that piece of code for pre-0.8 and
> just replacing it with the else-error_setg()?

Some the variables in check_host_key_knownhosts must be moved within
the HAVE_LIBSSH_0_8 block now; attached fixup patch, please squash with
my patch (I can submit a v12, if needed/wanted).

-- 
Pino Toscano

[-- Attachment #1.2: fixup.diff --]
[-- Type: text/x-patch, Size: 2209 bytes --]

diff --git a/block/ssh.c b/block/ssh.c
index 048d0cc924..501933b855 100644
--- a/block/ssh.c
+++ b/block/ssh.c
@@ -277,14 +277,14 @@ static void ssh_parse_filename(const char *filename, QDict *options,
 static int check_host_key_knownhosts(BDRVSSHState *s, Error **errp)
 {
     int ret;
+#ifdef HAVE_LIBSSH_0_8
+    enum ssh_known_hosts_e state;
     int r;
     ssh_key pubkey;
     enum ssh_keytypes_e pubkey_type;
     unsigned char *server_hash = NULL;
     size_t server_hash_len;
     char *fingerprint = NULL;
-#ifdef HAVE_LIBSSH_0_8
-    enum ssh_known_hosts_e state;
 
     state = ssh_session_is_known_server(s->session);
     trace_ssh_server_status(state);
@@ -356,30 +356,9 @@ static int check_host_key_knownhosts(BDRVSSHState *s, Error **errp)
         break;
     case SSH_SERVER_KNOWN_CHANGED:
         ret = -EINVAL;
-        r = ssh_get_publickey(s->session, &pubkey);
-        if (r == 0) {
-            r = ssh_get_publickey_hash(pubkey, SSH_PUBLICKEY_HASH_SHA1,
-                                       &server_hash, &server_hash_len);
-            pubkey_type = ssh_key_type(pubkey);
-            ssh_key_free(pubkey);
-        }
-        if (r == 0) {
-            fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
-                                                   server_hash,
-                                                   server_hash_len);
-            ssh_clean_pubkey_hash(&server_hash);
-        }
-        if (fingerprint) {
-            error_setg(errp,
-                       "host key (%s key with fingerprint %s) does not match "
-                       "the one in known_hosts; this may be a possible attack",
-                       ssh_key_type_to_char(pubkey_type), fingerprint);
-            ssh_string_free_char(fingerprint);
-        } else  {
-            error_setg(errp,
-                       "host key does not match the one in known_hosts; this "
-                       "may be a possible attack");
-        }
+        error_setg(errp,
+                   "host key does not match the one in known_hosts; this "
+                   "may be a possible attack");
         goto out;
     case SSH_SERVER_FOUND_OTHER:
         ret = -EINVAL;

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Block patches
  2019-06-24 13:15     ` Pino Toscano
@ 2019-06-24 14:49       ` Max Reitz
  0 siblings, 0 replies; 31+ messages in thread
From: Max Reitz @ 2019-06-24 14:49 UTC (permalink / raw)
  To: Pino Toscano; +Cc: Kevin Wolf, Peter Maydell, QEMU Developers, Qemu-block


[-- Attachment #1.1: Type: text/plain, Size: 2635 bytes --]

On 24.06.19 15:15, Pino Toscano wrote:
> On Monday, 24 June 2019 14:20:11 CEST Max Reitz wrote:
>> On 23.06.19 19:18, Peter Maydell wrote:
>>> On Fri, 21 Jun 2019 at 14:23, Max Reitz <mreitz@redhat.com> wrote:
>>>>
>>>> The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1:
>>>>
>>>>   Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100)
>>>>
>>>> are available in the Git repository at:
>>>>
>>>>   https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21
>>>>
>>>> for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472:
>>>>
>>>>   iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200)
>>>>
>>>> ----------------------------------------------------------------
>>>> Block patches:
>>>> - The SSH block driver now uses libssh instead of libssh2
>>>> - The VMDK block driver gets read-only support for the seSparse
>>>>   subformat
>>>> - Various fixes
>>>>
>>>
>>> Hi; this failed to build on my s390 box:
>>>
>>> /home/linux1/qemu/block/ssh.c: In function ‘check_host_key_knownhosts’:
>>> /home/linux1/qemu/block/ssh.c:367:27: error: implicit declaration of
>>> function ‘ssh_get_fingerprint_hash’
>>> [-Werror=implicit-function-declaration]
>>>              fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
>>>                            ^
>>> /home/linux1/qemu/block/ssh.c:367:13: error: nested extern declaration
>>> of ‘ssh_get_fingerprint_hash’ [-Werror=nested-externs]
>>>              fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
>>>              ^
>>> /home/linux1/qemu/block/ssh.c:367:25: error: assignment makes pointer
>>> from integer without a cast [-Werror=int-conversion]
>>>              fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1,
>>>                          ^
>>>
>>> It looks like that function was introduced in libssh 0.8.3, and this box
>>> has 0.6.3. (configure has correctly not defined HAVE_LIBSSH_0_8
>>> but this usage is inside a bit of code that's compiled even when
>>> that is not defined.)
> 
> Oops, sorry, I did not test the latest versions with that old libssh.
> 
>> Pino, would you be OK with dropping that piece of code for pre-0.8 and
>> just replacing it with the else-error_setg()?
> 
> Some the variables in check_host_key_knownhosts must be moved within
> the HAVE_LIBSSH_0_8 block now; attached fixup patch, please squash with
> my patch (I can submit a v12, if needed/wanted).

Thanks, I’ve squashed it in and sent a v2 for this pull request.

Max


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2019-06-24 14:52 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-07 11:28 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi
2013-10-07 11:28 ` [Qemu-devel] [PULL 1/8] qcow2: Correct endianness in overlap check Stefan Hajnoczi
2013-10-07 11:28 ` [Qemu-devel] [PULL 2/8] qcow2: CHECK_OFLAG_COPIED is obsolete Stefan Hajnoczi
2013-10-07 11:28 ` [Qemu-devel] [PULL 3/8] block: use correct filename for error report Stefan Hajnoczi
2013-10-07 11:28 ` [Qemu-devel] [PULL 4/8] block: vhdx - add migration blocker Stefan Hajnoczi
2013-10-07 11:28 ` [Qemu-devel] [PULL 5/8] qcow2: Switch L1 table in a single sequence Stefan Hajnoczi
2013-10-07 11:28 ` [Qemu-devel] [PULL 6/8] qcow2: Free allocated L2 cluster on error Stefan Hajnoczi
2013-10-07 11:28 ` [Qemu-devel] [PULL 7/8] qemu-iotests: Correct 026 output Stefan Hajnoczi
2013-10-07 11:28 ` [Qemu-devel] [PULL 8/8] block: use correct filename Stefan Hajnoczi
  -- strict thread matches above, loose matches on Subject: below --
2019-06-21 13:23 [Qemu-devel] [PULL 0/8] Block patches Max Reitz
2019-06-23 17:18 ` Peter Maydell
2019-06-24 12:20   ` Max Reitz
2019-06-24 13:15     ` Pino Toscano
2019-06-24 14:49       ` Max Reitz
2019-05-10 13:02 Stefan Hajnoczi
2019-05-10 14:24 ` Peter Maydell
2018-05-12  9:28 Stefan Hajnoczi
2018-05-12  9:42 ` no-reply
2018-05-14 13:15 ` Peter Maydell
2018-05-14 16:02   ` Peter Maydell
2018-05-14 17:53 ` Peter Maydell
2016-07-18 16:59 Stefan Hajnoczi
2016-07-19  8:01 ` Peter Maydell
2014-01-31 21:19 Stefan Hajnoczi
2014-02-05 16:38 ` Peter Maydell
2013-07-15 11:16 Kevin Wolf
2013-04-05 13:28 Kevin Wolf
2011-07-06 14:21 Kevin Wolf
2011-07-12  9:14 ` Kevin Wolf
2011-07-12 13:16 ` Anthony Liguori
2010-05-20 13:10 Kevin Wolf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).