qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/6] Block patches
@ 2010-08-03 14:44 Kevin Wolf
  2010-08-09 13:41 ` Anthony Liguori
  0 siblings, 1 reply; 18+ messages in thread
From: Kevin Wolf @ 2010-08-03 14:44 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

The following changes since commit 5933e8a96ab9c59cb6b6c80c9db385364a68c959:

  fix last cpu timer initialization (2010-08-02 18:49:13 +0000)

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

Andrea Arcangeli (1):
      ide: Avoid canceling IDE DMA

Kevin Wolf (2):
      block: Change bdrv_commit to handle multiple sectors at once
      block: Fix bdrv_has_zero_init

Markus Armbruster (1):
      block: Change bdrv_eject() not to drop the image

Miguel Di Ciurcio Filho (1):
      loadvm: improve tests before bdrv_snapshot_goto()

Yoshiaki Tamura (1):
      block migration: replace tabs by spaces.

 block-migration.c |   12 ++++----
 block.c           |   50 ++++++++++++++++++------------------
 block/raw-posix.c |   13 ++++++---
 block/raw-win32.c |    6 ++++
 block/raw.c       |    6 ++++
 block_int.h       |    8 ++++-
 hw/ide/pci.c      |   23 +++++++++++++++-
 monitor.c         |    3 +-
 savevm.c          |   71 +++++++++++++++++++++++++---------------------------
 9 files changed, 115 insertions(+), 77 deletions(-)

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

* Re: [Qemu-devel] [PULL 0/6] Block patches
  2010-08-03 14:44 Kevin Wolf
@ 2010-08-09 13:41 ` Anthony Liguori
  0 siblings, 0 replies; 18+ messages in thread
From: Anthony Liguori @ 2010-08-09 13:41 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: qemu-devel

On 08/03/2010 09:44 AM, Kevin Wolf wrote:
> The following changes since commit 5933e8a96ab9c59cb6b6c80c9db385364a68c959:
>
>    fix last cpu timer initialization (2010-08-02 18:49:13 +0000)
>    

Pulled, thanks.

Regards,

Anthony Liguori

> are available in the git repository at:
>    git://repo.or.cz/qemu/kevin.git for-anthony
>
> Andrea Arcangeli (1):
>        ide: Avoid canceling IDE DMA
>
> Kevin Wolf (2):
>        block: Change bdrv_commit to handle multiple sectors at once
>        block: Fix bdrv_has_zero_init
>
> Markus Armbruster (1):
>        block: Change bdrv_eject() not to drop the image
>
> Miguel Di Ciurcio Filho (1):
>        loadvm: improve tests before bdrv_snapshot_goto()
>
> Yoshiaki Tamura (1):
>        block migration: replace tabs by spaces.
>
>   block-migration.c |   12 ++++----
>   block.c           |   50 ++++++++++++++++++------------------
>   block/raw-posix.c |   13 ++++++---
>   block/raw-win32.c |    6 ++++
>   block/raw.c       |    6 ++++
>   block_int.h       |    8 ++++-
>   hw/ide/pci.c      |   23 +++++++++++++++-
>   monitor.c         |    3 +-
>   savevm.c          |   71 +++++++++++++++++++++++++---------------------------
>   9 files changed, 115 insertions(+), 77 deletions(-)
>
>
>    

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

* [Qemu-devel] [PULL 0/6] Block patches
@ 2011-05-03 11:08 Kevin Wolf
  2011-05-03 12:44 ` Anthony Liguori
  0 siblings, 1 reply; 18+ messages in thread
From: Kevin Wolf @ 2011-05-03 11:08 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

The following changes since commit 57aa265d462a64a06268be26d49020729cff56c1:

  lm32: add Milkymist Minimac2 support (2011-05-03 10:48:40 +0200)

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

Alon Levy (1):
      ide/atapi: fix set but unused

Amit Shah (2):
      atapi: Move comment to proper place
      atapi: Explain why we need a 'media not present' state

Jes Sorensen (1):
      qemu-progress.c: printf isn't signal safe

Kevin Wolf (1):
      qemu-img resize: Fix option parsing

Nick Thomas (1):
      NBD: Avoid leaking a couple of strings when the NBD device is closed

 block/nbd.c     |    4 ++++
 hw/ide/atapi.c  |   14 +++++++++-----
 qemu-img.c      |   13 +++++++++++--
 qemu-progress.c |    7 ++++++-
 4 files changed, 30 insertions(+), 8 deletions(-)

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

* Re: [Qemu-devel] [PULL 0/6] Block patches
  2011-05-03 11:08 Kevin Wolf
@ 2011-05-03 12:44 ` Anthony Liguori
  0 siblings, 0 replies; 18+ messages in thread
From: Anthony Liguori @ 2011-05-03 12:44 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: qemu-devel

On 05/03/2011 06:08 AM, Kevin Wolf wrote:
> The following changes since commit 57aa265d462a64a06268be26d49020729cff56c1:
>
>    lm32: add Milkymist Minimac2 support (2011-05-03 10:48:40 +0200)
>
> are available in the git repository at:
>    git://repo.or.cz/qemu/kevin.git for-anthony

Pulled.  Thanks.

Regards,

Anthony Liguori

> Alon Levy (1):
>        ide/atapi: fix set but unused
>
> Amit Shah (2):
>        atapi: Move comment to proper place
>        atapi: Explain why we need a 'media not present' state
>
> Jes Sorensen (1):
>        qemu-progress.c: printf isn't signal safe
>
> Kevin Wolf (1):
>        qemu-img resize: Fix option parsing
>
> Nick Thomas (1):
>        NBD: Avoid leaking a couple of strings when the NBD device is closed
>
>   block/nbd.c     |    4 ++++
>   hw/ide/atapi.c  |   14 +++++++++-----
>   qemu-img.c      |   13 +++++++++++--
>   qemu-progress.c |    7 ++++++-
>   4 files changed, 30 insertions(+), 8 deletions(-)

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

* [Qemu-devel] [PULL 0/6] Block patches
@ 2013-01-14 10:01 Kevin Wolf
  2013-01-20 14:47 ` Anthony Liguori
  0 siblings, 1 reply; 18+ messages in thread
From: Kevin Wolf @ 2013-01-14 10:01 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

The following changes since commit 63fb2590839162afdf14d7c0ee02d460766c0956:

  Merge branch 'target-arm.next' of git://git.linaro.org/people/pmaydell/qemu-arm (2013-01-12 12:47:07 +0000)

are available in the git repository at:

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

Liu Yuan (1):
      sheepdog: implement direct write semantics

Paolo Bonzini (2):
      block: do not probe zero-sized disks
      raw-posix: fix bdrv_aio_ioctl

Stefan Hajnoczi (3):
      block: make qiov_is_aligned() public
      dataplane: extract virtio-blk read/write processing into do_rdwr_cmd()
      dataplane: handle misaligned virtio-blk requests

 block.c                   |   18 +++++++++++-
 block/raw-posix.c         |   28 +----------------
 block/sheepdog.c          |   70 +++++++++++++++++++++++++-------------------
 hw/dataplane/virtio-blk.c |   71 ++++++++++++++++++++++++++++++++++++++-------
 include/block/block.h     |    1 +
 5 files changed, 120 insertions(+), 68 deletions(-)

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

* Re: [Qemu-devel] [PULL 0/6] Block patches
  2013-01-14 10:01 Kevin Wolf
@ 2013-01-20 14:47 ` Anthony Liguori
  0 siblings, 0 replies; 18+ messages in thread
From: Anthony Liguori @ 2013-01-20 14:47 UTC (permalink / raw)
  To: Kevin Wolf, anthony; +Cc: qemu-devel

Pulled.  Thanks.

Regards,

Anthony Liguori

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

* [Qemu-devel] [PULL 0/6] Block patches
@ 2013-12-13 17:48 Kevin Wolf
  2013-12-13 17:48 ` [Qemu-devel] [PULL 1/6] sheepdog: check if '-o redundancy' is passed from user Kevin Wolf
                   ` (5 more replies)
  0 siblings, 6 replies; 18+ messages in thread
From: Kevin Wolf @ 2013-12-13 17:48 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

The following changes since commit 47acdd63a33a5966bf4fc94a6ac835d72a70c555:

  target-microblaze: Use the new qemu_ld/st opcodes (2013-12-13 10:00:42 +1000)

are available in the git repository at:

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

for you to fetch changes up to c547e5640d5b0993cdfb252331065c1a1d813bd8:

  blkdebug: Use QLIST_FOREACH_SAFE to resume IO (2013-12-13 17:11:19 +0100)

----------------------------------------------------------------
Block patches

----------------------------------------------------------------
Fam Zheng (1):
      blkdebug: Use QLIST_FOREACH_SAFE to resume IO

Kevin Wolf (1):
      qapi-schema.json: Change 1.8 reference to 2.0

Liu Yuan (1):
      sheepdog: check if '-o redundancy' is passed from user

Peter Lieven (2):
      block: expect get_block_status errors in bdrv_make_zero
      qemu-img: make progress output more accurate during convert

Stefan Weil (1):
      block/vvfat: Fix compiler warnings for OpenBSD

 block.c          |  5 +++++
 block/blkdebug.c |  8 ++++----
 block/sheepdog.c |  8 +++++---
 block/vvfat.c    | 43 ++++++++++++++++++++++---------------------
 qapi-schema.json |  2 +-
 qemu-img.c       | 26 +++++++++++++++++++++-----
 6 files changed, 58 insertions(+), 34 deletions(-)

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

* [Qemu-devel] [PULL 1/6] sheepdog: check if '-o redundancy' is passed from user
  2013-12-13 17:48 [Qemu-devel] [PULL 0/6] Block patches Kevin Wolf
@ 2013-12-13 17:48 ` Kevin Wolf
  2013-12-13 17:48 ` [Qemu-devel] [PULL 2/6] qapi-schema.json: Change 1.8 reference to 2.0 Kevin Wolf
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 18+ messages in thread
From: Kevin Wolf @ 2013-12-13 17:48 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

From: Liu Yuan <namei.unix@gmail.com>

This fix a segfault (that is caused by b3af018f3) of following command:

$ qemu-img convert some_img sheepdog:some_img

Cc: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/sheepdog.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/block/sheepdog.c b/block/sheepdog.c
index b4ae50f..d1c812d 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -1666,9 +1666,11 @@ static int sd_create(const char *filename, QEMUOptionParameter *options,
                 goto out;
             }
         } else if (!strcmp(options->name, BLOCK_OPT_REDUNDANCY)) {
-            ret = parse_redundancy(s, options->value.s);
-            if (ret < 0) {
-                goto out;
+            if (options->value.s) {
+                ret = parse_redundancy(s, options->value.s);
+                if (ret < 0) {
+                    goto out;
+                }
             }
         }
         options++;
-- 
1.8.1.4

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

* [Qemu-devel] [PULL 2/6] qapi-schema.json: Change 1.8 reference to 2.0
  2013-12-13 17:48 [Qemu-devel] [PULL 0/6] Block patches Kevin Wolf
  2013-12-13 17:48 ` [Qemu-devel] [PULL 1/6] sheepdog: check if '-o redundancy' is passed from user Kevin Wolf
@ 2013-12-13 17:48 ` Kevin Wolf
  2013-12-13 17:49 ` [Qemu-devel] [PULL 3/6] block/vvfat: Fix compiler warnings for OpenBSD Kevin Wolf
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 18+ messages in thread
From: Kevin Wolf @ 2013-12-13 17:48 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 qapi-schema.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qapi-schema.json b/qapi-schema.json
index d6f8615..c3c939c 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -949,7 +949,7 @@
 #             (only present if removable is true)
 #
 # @dirty-bitmaps: #optional dirty bitmaps information (only present if the
-#                 driver has one or more dirty bitmaps) (Since 1.8)
+#                 driver has one or more dirty bitmaps) (Since 2.0)
 #
 # @io-status: #optional @BlockDeviceIoStatus. Only present if the device
 #             supports it and the VM is configured to stop on errors
-- 
1.8.1.4

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

* [Qemu-devel] [PULL 3/6] block/vvfat: Fix compiler warnings for OpenBSD
  2013-12-13 17:48 [Qemu-devel] [PULL 0/6] Block patches Kevin Wolf
  2013-12-13 17:48 ` [Qemu-devel] [PULL 1/6] sheepdog: check if '-o redundancy' is passed from user Kevin Wolf
  2013-12-13 17:48 ` [Qemu-devel] [PULL 2/6] qapi-schema.json: Change 1.8 reference to 2.0 Kevin Wolf
@ 2013-12-13 17:49 ` Kevin Wolf
  2013-12-13 17:49 ` [Qemu-devel] [PULL 4/6] block: expect get_block_status errors in bdrv_make_zero Kevin Wolf
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 18+ messages in thread
From: Kevin Wolf @ 2013-12-13 17:49 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

From: Stefan Weil <sw@weilnetz.de>

The buildbot shows these compiler warnings:

block/vvfat.c: In function 'create_short_and_long_name':
block/vvfat.c:620: warning: array size (8) smaller than bound length (11)
block/vvfat.c:620: warning: array size (8) smaller than bound length (11)
block/vvfat.c:635: warning: array size (8) smaller than bound length (11)
block/vvfat.c:635: warning: array size (8) smaller than bound length (11)

They are caused by tricky code where 8 characters for the name are followed
by 3 characters for the extension, and some operations touch both name and
extension.

Using an 11 character name which includes the extension fixes the compiler
warning, satisfies cppcheck, valgrind and maybe other static and dynamic
code checkers, and even simplifies some parts of the code.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/vvfat.c | 43 ++++++++++++++++++++++---------------------
 1 file changed, 22 insertions(+), 21 deletions(-)

diff --git a/block/vvfat.c b/block/vvfat.c
index 3ddaa0b..1abb8ad 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -266,8 +266,7 @@ typedef struct mbr_t {
 } QEMU_PACKED mbr_t;
 
 typedef struct direntry_t {
-    uint8_t name[8];
-    uint8_t extension[3];
+    uint8_t name[8 + 3];
     uint8_t attributes;
     uint8_t reserved[2];
     uint16_t ctime;
@@ -518,11 +517,9 @@ static inline uint8_t fat_chksum(const direntry_t* entry)
     uint8_t chksum=0;
     int i;
 
-    for(i=0;i<11;i++) {
-        unsigned char c;
-
-        c = (i < 8) ? entry->name[i] : entry->extension[i-8];
-        chksum=(((chksum&0xfe)>>1)|((chksum&0x01)?0x80:0)) + c;
+    for (i = 0; i < ARRAY_SIZE(entry->name); i++) {
+        chksum = (((chksum & 0xfe) >> 1) |
+                  ((chksum & 0x01) ? 0x80 : 0)) + entry->name[i];
     }
 
     return chksum;
@@ -617,7 +614,7 @@ static inline direntry_t* create_short_and_long_name(BDRVVVFATState* s,
 
     if(is_dot) {
 	entry=array_get_next(&(s->directory));
-	memset(entry->name,0x20,11);
+        memset(entry->name, 0x20, sizeof(entry->name));
 	memcpy(entry->name,filename,strlen(filename));
 	return entry;
     }
@@ -632,12 +629,14 @@ static inline direntry_t* create_short_and_long_name(BDRVVVFATState* s,
 	i = 8;
 
     entry=array_get_next(&(s->directory));
-    memset(entry->name,0x20,11);
+    memset(entry->name, 0x20, sizeof(entry->name));
     memcpy(entry->name, filename, i);
 
-    if(j > 0)
-	for (i = 0; i < 3 && filename[j+1+i]; i++)
-	    entry->extension[i] = filename[j+1+i];
+    if (j > 0) {
+        for (i = 0; i < 3 && filename[j + 1 + i]; i++) {
+            entry->name[8 + i] = filename[j + 1 + i];
+        }
+    }
 
     /* upcase & remove unwanted characters */
     for(i=10;i>=0;i--) {
@@ -861,8 +860,7 @@ static int init_directories(BDRVVVFATState* s,
     {
 	direntry_t* entry=array_get_next(&(s->directory));
 	entry->attributes=0x28; /* archive | volume label */
-	memcpy(entry->name,"QEMU VVF",8);
-	memcpy(entry->extension,"AT ",3);
+        memcpy(entry->name, "QEMU VVFAT ", sizeof(entry->name));
     }
 
     /* Now build FAT, and write back information into directory */
@@ -1591,17 +1589,20 @@ static int parse_short_name(BDRVVVFATState* s,
 	    lfn->name[i] = direntry->name[i];
     }
 
-    for (j = 2; j >= 0 && direntry->extension[j] == ' '; j--);
+    for (j = 2; j >= 0 && direntry->name[8 + j] == ' '; j--) {
+    }
     if (j >= 0) {
 	lfn->name[i++] = '.';
 	lfn->name[i + j + 1] = '\0';
 	for (;j >= 0; j--) {
-	    if (direntry->extension[j] <= ' ' || direntry->extension[j] > 0x7f)
-		return -2;
-	    else if (s->downcase_short_names)
-		lfn->name[i + j] = qemu_tolower(direntry->extension[j]);
-	    else
-		lfn->name[i + j] = direntry->extension[j];
+            uint8_t c = direntry->name[8 + j];
+            if (c <= ' ' || c > 0x7f) {
+                return -2;
+            } else if (s->downcase_short_names) {
+                lfn->name[i + j] = qemu_tolower(c);
+            } else {
+                lfn->name[i + j] = c;
+            }
 	}
     } else
 	lfn->name[i + j + 1] = '\0';
-- 
1.8.1.4

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

* [Qemu-devel] [PULL 4/6] block: expect get_block_status errors in bdrv_make_zero
  2013-12-13 17:48 [Qemu-devel] [PULL 0/6] Block patches Kevin Wolf
                   ` (2 preceding siblings ...)
  2013-12-13 17:49 ` [Qemu-devel] [PULL 3/6] block/vvfat: Fix compiler warnings for OpenBSD Kevin Wolf
@ 2013-12-13 17:49 ` Kevin Wolf
  2013-12-13 17:49 ` [Qemu-devel] [PULL 5/6] qemu-img: make progress output more accurate during convert Kevin Wolf
  2013-12-13 17:49 ` [Qemu-devel] [PULL 6/6] blkdebug: Use QLIST_FOREACH_SAFE to resume IO Kevin Wolf
  5 siblings, 0 replies; 18+ messages in thread
From: Kevin Wolf @ 2013-12-13 17:49 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

From: Peter Lieven <pl@kamp.de>

during testing around with 4k LUNs a bad target implementation
triggert an -EIO in iscsi_get_block_status, but it got never caught
resulting in an infinite loop.

CC: qemu-stable@nongnu.org
Signed-off-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/block.c b/block.c
index 13f001a..64e7d22 100644
--- a/block.c
+++ b/block.c
@@ -2421,6 +2421,11 @@ int bdrv_make_zero(BlockDriverState *bs, BdrvRequestFlags flags)
             nb_sectors = INT_MAX;
         }
         ret = bdrv_get_block_status(bs, sector_num, nb_sectors, &n);
+        if (ret < 0) {
+            error_report("error getting block status at sector %" PRId64 ": %s",
+                         sector_num, strerror(-ret));
+            return ret;
+        }
         if (ret & BDRV_BLOCK_ZERO) {
             sector_num += n;
             continue;
-- 
1.8.1.4

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

* [Qemu-devel] [PULL 5/6] qemu-img: make progress output more accurate during convert
  2013-12-13 17:48 [Qemu-devel] [PULL 0/6] Block patches Kevin Wolf
                   ` (3 preceding siblings ...)
  2013-12-13 17:49 ` [Qemu-devel] [PULL 4/6] block: expect get_block_status errors in bdrv_make_zero Kevin Wolf
@ 2013-12-13 17:49 ` Kevin Wolf
  2013-12-13 17:49 ` [Qemu-devel] [PULL 6/6] blkdebug: Use QLIST_FOREACH_SAFE to resume IO Kevin Wolf
  5 siblings, 0 replies; 18+ messages in thread
From: Kevin Wolf @ 2013-12-13 17:49 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

From: Peter Lieven <pl@kamp.de>

the progress output is very bumpy if the input images contains
a significant portion of unallocated sectors. This patch
checks how much sectors are allocated a priori if progress
output is selected.

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 qemu-img.c | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/qemu-img.c b/qemu-img.c
index 7dfe982..a4b3931 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -1135,8 +1135,7 @@ static int img_convert(int argc, char **argv)
     const char *fmt, *out_fmt, *cache, *out_baseimg, *out_filename;
     BlockDriver *drv, *proto_drv;
     BlockDriverState **bs = NULL, *out_bs = NULL;
-    int64_t total_sectors, nb_sectors, sector_num, bs_offset,
-            sector_num_next_status = 0;
+    int64_t total_sectors, nb_sectors, sector_num, bs_offset;
     uint64_t bs_sectors;
     uint8_t * buf = NULL;
     size_t bufsectors = IO_BUF_SIZE / BDRV_SECTOR_SIZE;
@@ -1505,6 +1504,8 @@ static int img_convert(int argc, char **argv)
         /* signal EOF to align */
         bdrv_write_compressed(out_bs, 0, NULL, 0);
     } else {
+        int64_t sectors_to_read, sectors_read, sector_num_next_status;
+        bool count_allocated_sectors;
         int has_zero_init = min_sparse ? bdrv_has_zero_init(out_bs) : 0;
 
         if (!has_zero_init && bdrv_can_write_zeroes_with_unmap(out_bs)) {
@@ -1515,12 +1516,21 @@ static int img_convert(int argc, char **argv)
             has_zero_init = 1;
         }
 
+        sectors_to_read = total_sectors;
+        count_allocated_sectors = progress && (out_baseimg || has_zero_init);
+restart:
         sector_num = 0; // total number of sectors converted so far
-        nb_sectors = total_sectors - sector_num;
+        sectors_read = 0;
+        sector_num_next_status = 0;
 
         for(;;) {
             nb_sectors = total_sectors - sector_num;
             if (nb_sectors <= 0) {
+                if (count_allocated_sectors) {
+                    sectors_to_read = sectors_read;
+                    count_allocated_sectors = false;
+                    goto restart;
+                }
                 ret = 0;
                 break;
             }
@@ -1586,8 +1596,14 @@ static int img_convert(int argc, char **argv)
             }
 
             n = MIN(n, bs_sectors - (sector_num - bs_offset));
-            n1 = n;
 
+            sectors_read += n;
+            if (count_allocated_sectors) {
+                sector_num += n;
+                continue;
+            }
+
+            n1 = n;
             ret = bdrv_read(bs[bs_i], sector_num - bs_offset, buf, n);
             if (ret < 0) {
                 error_report("error while reading sector %" PRId64 ": %s",
@@ -1612,7 +1628,7 @@ static int img_convert(int argc, char **argv)
                 n -= n1;
                 buf1 += n1 * 512;
             }
-            qemu_progress_print(100.0 * sector_num / total_sectors, 0);
+            qemu_progress_print(100.0 * sectors_read / sectors_to_read, 0);
         }
     }
 out:
-- 
1.8.1.4

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

* [Qemu-devel] [PULL 6/6] blkdebug: Use QLIST_FOREACH_SAFE to resume IO
  2013-12-13 17:48 [Qemu-devel] [PULL 0/6] Block patches Kevin Wolf
                   ` (4 preceding siblings ...)
  2013-12-13 17:49 ` [Qemu-devel] [PULL 5/6] qemu-img: make progress output more accurate during convert Kevin Wolf
@ 2013-12-13 17:49 ` Kevin Wolf
  5 siblings, 0 replies; 18+ messages in thread
From: Kevin Wolf @ 2013-12-13 17:49 UTC (permalink / raw)
  To: anthony; +Cc: kwolf, qemu-devel

From: Fam Zheng <famz@redhat.com>

Qemu-iotest 030 was broken.

When the coroutine runs and finishes, it will remove itself from the req
list, so let's use safe version of foreach to avoid use after free.

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/blkdebug.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/block/blkdebug.c b/block/blkdebug.c
index 37cf028..957be2c 100644
--- a/block/blkdebug.c
+++ b/block/blkdebug.c
@@ -594,9 +594,9 @@ static int blkdebug_debug_breakpoint(BlockDriverState *bs, const char *event,
 static int blkdebug_debug_resume(BlockDriverState *bs, const char *tag)
 {
     BDRVBlkdebugState *s = bs->opaque;
-    BlkdebugSuspendedReq *r;
+    BlkdebugSuspendedReq *r, *next;
 
-    QLIST_FOREACH(r, &s->suspended_reqs, next) {
+    QLIST_FOREACH_SAFE(r, &s->suspended_reqs, next, next) {
         if (!strcmp(r->tag, tag)) {
             qemu_coroutine_enter(r->co, NULL);
             return 0;
@@ -609,7 +609,7 @@ static int blkdebug_debug_remove_breakpoint(BlockDriverState *bs,
                                             const char *tag)
 {
     BDRVBlkdebugState *s = bs->opaque;
-    BlkdebugSuspendedReq *r;
+    BlkdebugSuspendedReq *r, *r_next;
     BlkdebugRule *rule, *next;
     int i, ret = -ENOENT;
 
@@ -622,7 +622,7 @@ static int blkdebug_debug_remove_breakpoint(BlockDriverState *bs,
             }
         }
     }
-    QLIST_FOREACH(r, &s->suspended_reqs, next) {
+    QLIST_FOREACH_SAFE(r, &s->suspended_reqs, next, r_next) {
         if (!strcmp(r->tag, tag)) {
             qemu_coroutine_enter(r->co, NULL);
             ret = 0;
-- 
1.8.1.4

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

* [Qemu-devel] [PULL 0/6] Block patches
@ 2014-06-23  9:31 Stefan Hajnoczi
  2014-06-23 12:18 ` Peter Maydell
  0 siblings, 1 reply; 18+ messages in thread
From: Stefan Hajnoczi @ 2014-06-23  9:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Stefan Hajnoczi

The following changes since commit 427e1750a0b98a72cad424327604f51e993dcc5f:

  gt64xxx_pci: Add VMStateDescription (2014-06-20 23:40:16 +0200)

are available in the git repository at:

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

for you to fetch changes up to 2bd3bce8efebe86b031beab5c0e3b9bbaec0b502:

  block: asynchronously stop the VM on I/O errors (2014-06-23 16:36:13 +0800)

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

----------------------------------------------------------------
Chunyan Liu (1):
      QemuOpts: check NULL opts in qemu_opt_get functions

Liu Yuan (1):
      sheepdog: fix NULL dereference in sd_create

Paolo Bonzini (2):
      vl: allow other threads to do qemu_system_vmstop_request
      block: asynchronously stop the VM on I/O errors

Peter Crosthwaite (2):
      block: m25p80: sync_page(): Deindent function body.
      block: m25p80: Support read only bdrvs.

 block.c                 | 21 ++++++++++--
 block/sheepdog.c        |  1 +
 cpus.c                  |  1 +
 docs/qmp/qmp-events.txt |  2 +-
 hw/block/m25p80.c       | 30 ++++++++---------
 include/sysemu/sysemu.h |  1 +
 stubs/vm-stop.c         |  7 +++-
 target-lm32/op_helper.c |  2 +-
 util/qemu-option.c      | 28 +++++++++++++---
 vl.c                    | 85 +++++++++++++++++++++++++++++++------------------
 10 files changed, 122 insertions(+), 56 deletions(-)

-- 
1.9.3

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

* Re: [Qemu-devel] [PULL 0/6] Block patches
  2014-06-23  9:31 Stefan Hajnoczi
@ 2014-06-23 12:18 ` Peter Maydell
  0 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2014-06-23 12:18 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: QEMU Developers

On 23 June 2014 10:31, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit 427e1750a0b98a72cad424327604f51e993dcc5f:
>
>   gt64xxx_pci: Add VMStateDescription (2014-06-20 23:40:16 +0200)
>
> are available in the git repository at:
>
>   git://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to 2bd3bce8efebe86b031beab5c0e3b9bbaec0b502:
>
>   block: asynchronously stop the VM on I/O errors (2014-06-23 16:36:13 +0800)
>
> ----------------------------------------------------------------
> Block pull request

Applied, thanks.

-- PMM

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

* [Qemu-devel] [PULL 0/6] Block patches
@ 2018-03-05  9:40 Stefan Hajnoczi
  2018-03-05  9:52 ` no-reply
  2018-03-05 18:55 ` Peter Maydell
  0 siblings, 2 replies; 18+ messages in thread
From: Stefan Hajnoczi @ 2018-03-05  9:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-block, Peter Maydell, Stefan Hajnoczi

The following changes since commit 136c67e07869227b21b3f627316e03679ce7b738:

  Merge remote-tracking branch 'remotes/bkoppelmann/tags/pull-tricore-2018-03-02' into staging (2018-03-02 16:56:20 +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 23500c6a9409efc80d696aede0629bfbe7556a90:

  README: Document 'git-publish' workflow (2018-03-05 09:03:17 +0000)

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

Mostly patches that are only indirectly related to the block layer, but I've
reviewed them and there is no maintainer.

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

Fam Zheng (2):
  Add a git-publish configuration file
  README: Document 'git-publish' workflow

Su Hang (3):
  util/uri.c: Coding style check, Only whitespace involved
  util/uri.c: remove brackets that wrap `return` statement's content.
  util/uri.c: wrap single statement blocks with braces {}

Thomas Huth (1):
  tests/libqos: Check for valid dev pointer when looking for PCI devices

 tests/libqos/virtio-pci.c |    4 +-
 util/uri.c                | 1733 ++++++++++++++++++++++++---------------------
 .gitpublish               |   51 ++
 README                    |   31 +-
 4 files changed, 1014 insertions(+), 805 deletions(-)
 create mode 100644 .gitpublish

-- 
2.14.3

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

* Re: [Qemu-devel] [PULL 0/6] Block patches
  2018-03-05  9:40 [Qemu-devel] [PULL 0/6] Block patches Stefan Hajnoczi
@ 2018-03-05  9:52 ` no-reply
  2018-03-05 18:55 ` Peter Maydell
  1 sibling, 0 replies; 18+ messages in thread
From: no-reply @ 2018-03-05  9:52 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: 20180305094006.21446-1-stefanha@redhat.com
Subject: [Qemu-devel] [PULL 0/6] 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
   136c67e078..4f51e1d386  master     -> master
 * [new tag]               patchew/1520243276-30197-1-git-send-email-thuth@redhat.com -> patchew/1520243276-30197-1-git-send-email-thuth@redhat.com
 * [new tag]               patchew/20180305094006.21446-1-stefanha@redhat.com -> patchew/20180305094006.21446-1-stefanha@redhat.com
Switched to a new branch 'test'
20eeab9795 README: Document 'git-publish' workflow
333283c56b Add a git-publish configuration file
3a9752c776 tests/libqos: Check for valid dev pointer when looking for PCI devices
6863406cb9 util/uri.c: wrap single statement blocks with braces {}
906ebc14e5 util/uri.c: remove brackets that wrap `return` statement's content.
d0e12d0916 util/uri.c: Coding style check, Only whitespace involved

=== OUTPUT BEGIN ===
Checking PATCH 1/6: util/uri.c: Coding style check, Only whitespace involved...
ERROR: return is not a function, parentheses are not required
#171: FILE: util/uri.c:215:
+        return (-1);

ERROR: return is not a function, parentheses are not required
#176: FILE: util/uri.c:219:
+        return (2);

ERROR: return is not a function, parentheses are not required
#190: FILE: util/uri.c:229:
+    return (0);

ERROR: braces {} are necessary for all arms of this statement
#212: FILE: util/uri.c:262:
+        if (uri->cleanup & 2)
[...]
+        else
[...]

ERROR: braces {} are necessary for all arms of this statement
#276: FILE: util/uri.c:359:
+            if (uri->cleanup & 2)
[...]
+            else
[...]

ERROR: return is not a function, parentheses are not required
#282: FILE: util/uri.c:365:
+        return (0);

ERROR: return is not a function, parentheses are not required
#285: FILE: util/uri.c:367:
+    return (1);

ERROR: return is not a function, parentheses are not required
#305: FILE: util/uri.c:389:
+        return (1);

ERROR: braces {} are necessary for all arms of this statement
#306: FILE: util/uri.c:390:
+    if (!ISA_DIGIT(cur + 1))
[...]
+    else if ((*cur != '0') && (ISA_DIGIT(cur + 1)) && (!ISA_DIGIT(cur + 2)))
[...]
     else if ((*cur == '1') && (ISA_DIGIT(cur + 1)) && (ISA_DIGIT(cur + 2)))
[...]
-    else if ((*cur == '2') && (*(cur + 1) >= '0') &&
[...]
-    else if ((*cur == '2') && (*(cur + 1) == '5') &&
[...]
+        cur += 3;
[...]

ERROR: braces {} are necessary for all arms of this statement
#308: FILE: util/uri.c:392:
+    else if ((*cur != '0') && (ISA_DIGIT(cur + 1)) && (!ISA_DIGIT(cur + 2)))
[...]
     else if ((*cur == '1') && (ISA_DIGIT(cur + 1)) && (ISA_DIGIT(cur + 2)))
[...]
-    else if ((*cur == '2') && (*(cur + 1) >= '0') &&
[...]
-    else if ((*cur == '2') && (*(cur + 1) == '5') &&
[...]
+        cur += 3;
[...]

ERROR: braces {} are necessary for all arms of this statement
#319: FILE: util/uri.c:396:
+    else if ((*cur == '2') && (*(cur + 1) >= '0') && (*(cur + 1) <= '4') &&
[...]
+    else if ((*cur == '2') && (*(cur + 1) == '5') && (*(cur + 2) >= '0') &&
[...]
     else
[...]

ERROR: braces {} are necessary for all arms of this statement
#322: FILE: util/uri.c:399:
+    else if ((*cur == '2') && (*(cur + 1) == '5') && (*(cur + 2) >= '0') &&
[...]
     else
[...]

ERROR: return is not a function, parentheses are not required
#327: FILE: util/uri.c:403:
+        return (1);

ERROR: return is not a function, parentheses are not required
#330: FILE: util/uri.c:405:
+    return (0);

ERROR: braces {} are necessary even for single statement blocks
#354: FILE: util/uri.c:433:
+        while ((*cur != ']') && (*cur != 0))
+            cur++;

ERROR: braces {} are necessary for all arms of this statement
#356: FILE: util/uri.c:435:
+        if (*cur != ']')
[...]

ERROR: return is not a function, parentheses are not required
#357: FILE: util/uri.c:436:
+            return (1);

ERROR: braces {} are necessary for all arms of this statement
#371: FILE: util/uri.c:446:
+        if (*cur != '.')
[...]

ERROR: braces {} are necessary for all arms of this statement
#379: FILE: util/uri.c:451:
+        if (*cur != '.')
[...]

ERROR: braces {} are necessary for all arms of this statement
#386: FILE: util/uri.c:455:
+        if (*cur != '.')
[...]

ERROR: braces {} are necessary for all arms of this statement
#412: FILE: util/uri.c:473:
+        if (cur != host) {
[...]
+        } else
[...]

ERROR: braces {} are necessary for all arms of this statement
#413: FILE: util/uri.c:474:
+            if (uri->cleanup & 2)
[...]
+            else
[...]

ERROR: return is not a function, parentheses are not required
#422: FILE: util/uri.c:482:
+    return (0);

ERROR: braces {} are necessary for all arms of this statement
#441: FILE: util/uri.c:512:
+    if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#442: FILE: util/uri.c:513:
+        return (ret);

ERROR: braces {} are necessary for all arms of this statement
#447: FILE: util/uri.c:517:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#448: FILE: util/uri.c:518:
+            return (ret);

ERROR: return is not a function, parentheses are not required
#452: FILE: util/uri.c:521:
+    return (0);

ERROR: return is not a function, parentheses are not required
#471: FILE: util/uri.c:547:
+            return (0);

ERROR: return is not a function, parentheses are not required
#472: FILE: util/uri.c:548:
+        return (1);

ERROR: return is not a function, parentheses are not required
#494: FILE: util/uri.c:579:
+            return (ret);

ERROR: return is not a function, parentheses are not required
#513: FILE: util/uri.c:616:
+        return (1);

ERROR: return is not a function, parentheses are not required
#526: FILE: util/uri.c:624:
+                return (ret);

ERROR: braces {} are necessary for all arms of this statement
#546: FILE: util/uri.c:662:
+    if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#547: FILE: util/uri.c:663:
+        return (ret);

ERROR: return is not a function, parentheses are not required
#554: FILE: util/uri.c:668:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#573: FILE: util/uri.c:705:
+    if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#574: FILE: util/uri.c:706:
+        return (ret);

ERROR: return is not a function, parentheses are not required
#581: FILE: util/uri.c:711:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#606: FILE: util/uri.c:753:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#607: FILE: util/uri.c:754:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#609: FILE: util/uri.c:756:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#610: FILE: util/uri.c:757:
+            return (ret);

ERROR: return is not a function, parentheses are not required
#612: FILE: util/uri.c:759:
+        return (0);

ERROR: braces {} are necessary for all arms of this statement
#616: FILE: util/uri.c:762:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#617: FILE: util/uri.c:763:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#621: FILE: util/uri.c:766:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#622: FILE: util/uri.c:767:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#653: FILE: util/uri.c:802:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#654: FILE: util/uri.c:803:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#656: FILE: util/uri.c:805:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#657: FILE: util/uri.c:806:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#662: FILE: util/uri.c:809:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#663: FILE: util/uri.c:810:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#667: FILE: util/uri.c:813:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#668: FILE: util/uri.c:814:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#687: FILE: util/uri.c:826:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#688: FILE: util/uri.c:827:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#696: FILE: util/uri.c:832:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#697: FILE: util/uri.c:833:
+            return (ret);

ERROR: return is not a function, parentheses are not required
#703: FILE: util/uri.c:837:
+        return (1);

ERROR: return is not a function, parentheses are not required
#706: FILE: util/uri.c:839:
+    return (0);

ERROR: braces {} are necessary for all arms of this statement
#725: FILE: util/uri.c:859:
+    if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#726: FILE: util/uri.c:860:
+        return (ret);

ERROR: return is not a function, parentheses are not required
#729: FILE: util/uri.c:862:
+        return (1);

ERROR: braces {} are necessary for all arms of this statement
#734: FILE: util/uri.c:866:
+    if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#735: FILE: util/uri.c:867:
+        return (ret);

ERROR: braces {} are necessary for all arms of this statement
#742: FILE: util/uri.c:871:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#743: FILE: util/uri.c:872:
+            return (ret);

ERROR: braces {} are necessary for all arms of this statement
#751: FILE: util/uri.c:877:
+        if (ret != 0)
[...]

ERROR: return is not a function, parentheses are not required
#752: FILE: util/uri.c:878:
+            return (ret);

ERROR: return is not a function, parentheses are not required
#758: FILE: util/uri.c:882:
+        return (1);

ERROR: return is not a function, parentheses are not required
#761: FILE: util/uri.c:884:
+    return (0);

ERROR: return is not a function, parentheses are not required
#777: FILE: util/uri.c:904:
+        return (-1);

ERROR: return is not a function, parentheses are not required
#794: FILE: util/uri.c:917:
+            return (ret);

ERROR: return is not a function, parentheses are not required
#798: FILE: util/uri.c:920:
+    return (0);

ERROR: return is not a function, parentheses are not required
#815: FILE: util/uri.c:939:
+        return (NULL);

ERROR: return is not a function, parentheses are not required
#821: FILE: util/uri.c:944:
+        return (NULL);

ERROR: return is not a function, parentheses are not required
#824: FILE: util/uri.c:946:
+    return (uri);

ERROR: return is not a function, parentheses are not required
#837: FILE: util/uri.c:963:
+    return (rfc3986_parse_uri_reference(uri, str));

ERROR: return is not a function, parentheses are not required
#854: FILE: util/uri.c:983:
+        return (NULL);

ERROR: return is not a function, parentheses are not required
#863: FILE: util/uri.c:991:
+        return (NULL);

ERROR: return is not a function, parentheses are not required
#866: FILE: util/uri.c:993:
+    return (uri);

ERROR: return is not a function, parentheses are not required
#891: FILE: util/uri.c:1014:
+    return (ret);

ERROR: return is not a function, parentheses are not required
#910: FILE: util/uri.c:1031:
+    return (temp);

ERROR: braces {} are necessary for all arms of this statement
#930: FILE: util/uri.c:1050:
+    if (uri == NULL)
[...]

ERROR: return is not a function, parentheses are not required
#931: FILE: util/uri.c:1051:
+        return (NULL);

ERROR: braces {} are necessary for all arms of this statement
#983: FILE: util/uri.c:1079:
+            if (IS_RESERVED(*(p)) || IS_UNRESERVED(*(p)))
[...]
+            else {
[...]

ERROR: braces {} are necessary for all arms of this statement
#1033: FILE: util/uri.c:1104:
+                    if ((IS_UNRESERVED(*(p))) || ((*(p) == ';')) ||
[...]
+                    else {
[...]

ERROR: braces {} are necessary for all arms of this statement
#1117: FILE: util/uri.c:1150:
+                if ((IS_UNRESERVED(*(p))) || ((*(p) == '$')) ||
[...]
+                else {
[...]

ERROR: braces {} are necessary for all arms of this statement
#1187: FILE: util/uri.c:1194:
+                if ((IS_UNRESERVED(*(p))) || ((*(p) == '/')) ||
[...]
-		else {
[...]

ERROR: braces {} are necessary for all arms of this statement
#1269: FILE: util/uri.c:1236:
+            if ((IS_UNRESERVED(*(p))) || (IS_RESERVED(*(p))))
[...]
+            else {
[...]

ERROR: return is not a function, parentheses are not required
#1286: FILE: util/uri.c:1252:
+    return (ret);

ERROR: braces {} are necessary for all arms of this statement
#1299: FILE: util/uri.c:1263:
+    if (uri == NULL)
[...]

ERROR: return is not a function, parentheses are not required
#1338: FILE: util/uri.c:1318:
+        return (-1);

ERROR: return is not a function, parentheses are not required
#1349: FILE: util/uri.c:1327:
+        return (0);

ERROR: braces {} are necessary even for single statement blocks
#1375: FILE: util/uri.c:1343:
+            while (cur[0] == '/')
+                cur++;

ERROR: braces {} are necessary for all arms of this statement
#1390: FILE: util/uri.c:1352:
+        if ((cur[0] == '.') && (cur[1] == '\0'))
[...]

ERROR: braces {} are necessary even for single statement blocks
#1408: FILE: util/uri.c:1362:
+        while ((cur[0] == '/') && (cur[1] == '/'))
+            cur++;

ERROR: return is not a function, parentheses are not required
#1424: FILE: util/uri.c:1375:
+        return (0);

ERROR: braces {} are necessary even for single statement blocks
#1517: FILE: util/uri.c:1482:
+            while (cur[0] != '\0')
+                (out++)[0] = (cur++)[0];

ERROR: return is not a function, parentheses are not required
#1524: FILE: util/uri.c:1488:
+    return (0);

ERROR: braces {} are necessary for all arms of this statement
#1532: FILE: util/uri.c:1493:
+    if (((c >= '0') && (c <= '9')) || ((c >= 'a') && (c <= 'f')) ||
[...]

ERROR: return is not a function, parentheses are not required
#1536: FILE: util/uri.c:1495:
+        return (1);

ERROR: return is not a function, parentheses are not required
#1537: FILE: util/uri.c:1496:
+    return (0);

ERROR: return is not a function, parentheses are not required
#1559: FILE: util/uri.c:1519:
+        return (NULL);

ERROR: braces {} are necessary for all arms of this statement
#1560: FILE: util/uri.c:1520:
+    if (len <= 0)
[...]

ERROR: braces {} are necessary for all arms of this statement
#1562: FILE: util/uri.c:1522:
+    if (len < 0)
[...]

ERROR: return is not a function, parentheses are not required
#1563: FILE: util/uri.c:1523:
+        return (NULL);

ERROR: braces {} are necessary for all arms of this statement
#1599: FILE: util/uri.c:1534:
+            if ((*in >= '0') && (*in <= '9'))
[...]
+            else if ((*in >= 'a') && (*in <= 'f'))
[...]
+            else if ((*in >= 'A') && (*in <= 'F'))
[...]

ERROR: braces {} are necessary for all arms of this statement
#1601: FILE: util/uri.c:1536:
+            else if ((*in >= 'a') && (*in <= 'f'))
[...]
+            else if ((*in >= 'A') && (*in <= 'F'))
[...]

ERROR: braces {} are necessary for all arms of this statement
#1603: FILE: util/uri.c:1538:
+            else if ((*in >= 'A') && (*in <= 'F'))
[...]

ERROR: braces {} are necessary for all arms of this statement
#1606: FILE: util/uri.c:1541:
+            if ((*in >= '0') && (*in <= '9'))
[...]
+            else if ((*in >= 'a') && (*in <= 'f'))
[...]
+            else if ((*in >= 'A') && (*in <= 'F'))
[...]

ERROR: braces {} are necessary for all arms of this statement
#1608: FILE: util/uri.c:1543:
+            else if ((*in >= 'a') && (*in <= 'f'))
[...]
+            else if ((*in >= 'A') && (*in <= 'F'))
[...]

ERROR: braces {} are necessary for all arms of this statement
#1610: FILE: util/uri.c:1545:
+            else if ((*in >= 'A') && (*in <= 'F'))
[...]

ERROR: return is not a function, parentheses are not required
#1622: FILE: util/uri.c:1556:
+    return (ret);

ERROR: return is not a function, parentheses are not required
#1641: FILE: util/uri.c:1577:
+        return (NULL);

ERROR: return is not a function, parentheses are not required
#1644: FILE: util/uri.c:1579:
+        return (g_strdup(str));

ERROR: braces {} are necessary for all arms of this statement
#1647: FILE: util/uri.c:1581:
+    if (!(len > 0))
[...]

ERROR: return is not a function, parentheses are not required
#1648: FILE: util/uri.c:1582:
+        return (NULL);

ERROR: braces {} are necessary for all arms of this statement
#1689: FILE: util/uri.c:1600:
+            if (val <= 9)
[...]
+            else
[...]

ERROR: braces {} are necessary for all arms of this statement
#1694: FILE: util/uri.c:1605:
+            if (val <= 9)
[...]
+            else
[...]

ERROR: return is not a function, parentheses are not required
#1705: FILE: util/uri.c:1615:
+    return (ret);

ERROR: braces {} are necessary for all arms of this statement
#1742: FILE: util/uri.c:1658:
+        if (*uri) {
[...]
+        } else
[...]

ERROR: braces {} are necessary for all arms of this statement
#1776: FILE: util/uri.c:1680:
+        if (ref)
[...]

ERROR: braces {} are necessary for all arms of this statement
#1806: FILE: util/uri.c:1710:
+        if (bas->authority != NULL)
[...]
+        else if (bas->server != NULL) {
[...]

ERROR: braces {} are necessary for all arms of this statement
#1846: FILE: util/uri.c:1750:
+        if (ref->authority != NULL)
[...]
+        else {
[...]

ERROR: braces {} are necessary even for single statement blocks
#1905: FILE: util/uri.c:1802:
+            while ((bas->path[cur] != 0) && (bas->path[cur] != '/'))
+                cur++;

ERROR: braces {} are necessary for all arms of this statement
#1907: FILE: util/uri.c:1804:
+            if (bas->path[cur] == 0)
[...]

ERROR: braces {} are necessary for all arms of this statement
#1942: FILE: util/uri.c:1825:
+        if ((out == 0) && (bas->server != NULL))
[...]

ERROR: return is not a function, parentheses are not required
#1963: FILE: util/uri.c:1854:
+    return (val);

ERROR: braces {} are necessary for all arms of this statement
#1995: FILE: util/uri.c:1912:
+        if (ret != 0)
[...]

ERROR: braces {} are necessary for all arms of this statement
#2017: FILE: util/uri.c:1927:
+        if (ret != 0)
[...]

ERROR: braces {} are necessary for all arms of this statement
#2073: FILE: util/uri.c:1965:
+            if (*uptr == '/')
[...]

ERROR: braces {} are necessary for all arms of this statement
#2089: FILE: util/uri.c:1975:
+            if (bptr[ix] == '/')
[...]

ERROR: braces {} are necessary for all arms of this statement
#2102: FILE: util/uri.c:1984:
+        if ((ref->path[pos] == '.') && (ref->path[pos + 1] == '/'))
[...]

ERROR: braces {} are necessary for all arms of this statement
#2105: FILE: util/uri.c:1986:
+        if ((*bptr == '.') && (bptr[1] == '/'))
[...]
-	else if ((*bptr == '/') && (ref->path[pos] != '/'))
[...]

ERROR: braces {} are necessary for all arms of this statement
#2111: FILE: util/uri.c:1988:
+        else if ((*bptr == '/') && (ref->path[pos] != '/'))
[...]

ERROR: braces {} are necessary even for single statement blocks
#2113: FILE: util/uri.c:1990:
+        while ((bptr[pos] == ref->path[pos]) && (bptr[pos] != 0))
+            pos++;

ERROR: braces {} are necessary for all arms of this statement
#2149: FILE: util/uri.c:2003:
+        if ((ref->path[ix] == '/') && (ix > 0))
[...]
+        else if ((ref->path[ix] == 0) && (ix > 1) && (ref->path[ix - 1] == '/'))
[...]

ERROR: braces {} are necessary for all arms of this statement
#2151: FILE: util/uri.c:2005:
+        else if ((ref->path[ix] == 0) && (ix > 1) && (ref->path[ix - 1] == '/'))
[...]

ERROR: braces {} are necessary for all arms of this statement
#2154: FILE: util/uri.c:2008:
+            if (ref->path[ix] == '/')
[...]

ERROR: braces {} are necessary for all arms of this statement
#2179: FILE: util/uri.c:2023:
+                if (bptr[ix] == '/')
[...]

ERROR: braces {} are necessary for all arms of this statement
#2191: FILE: util/uri.c:2031:
+        if (uptr != NULL)
[...]

ERROR: braces {} are necessary for all arms of this statement
#2272: FILE: util/uri.c:2096:
+    if (init_alloc <= 0)
[...]

ERROR: braces {} are necessary for all arms of this statement
#2341: FILE: util/uri.c:2159:
+        if (eq && eq >= end)
[...]

ERROR: braces {} are necessary for all arms of this statement
#2383: FILE: util/uri.c:2199:
+        if (*query)
[...]

total: 147 errors, 0 warnings, 2299 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 2/6: util/uri.c: remove brackets that wrap `return` statement's content....
Checking PATCH 3/6: util/uri.c: wrap single statement blocks with braces {}...
Checking PATCH 4/6: tests/libqos: Check for valid dev pointer when looking for PCI devices...
Checking PATCH 5/6: Add a git-publish configuration file...
Checking PATCH 6/6: README: Document 'git-publish' workflow...
=== OUTPUT END ===

Test command exited with code: 1


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

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

* Re: [Qemu-devel] [PULL 0/6] Block patches
  2018-03-05  9:40 [Qemu-devel] [PULL 0/6] Block patches Stefan Hajnoczi
  2018-03-05  9:52 ` no-reply
@ 2018-03-05 18:55 ` Peter Maydell
  1 sibling, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2018-03-05 18:55 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: QEMU Developers, Qemu-block

On 5 March 2018 at 09:40, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit 136c67e07869227b21b3f627316e03679ce7b738:
>
>   Merge remote-tracking branch 'remotes/bkoppelmann/tags/pull-tricore-2018-03-02' into staging (2018-03-02 16:56:20 +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 23500c6a9409efc80d696aede0629bfbe7556a90:
>
>   README: Document 'git-publish' workflow (2018-03-05 09:03:17 +0000)
>
> ----------------------------------------------------------------
> Pull request
>
> Mostly patches that are only indirectly related to the block layer, but I've
> reviewed them and there is no maintainer.
>
> ----------------------------------------------------------------
>
> Fam Zheng (2):
>   Add a git-publish configuration file
>   README: Document 'git-publish' workflow
>
> Su Hang (3):
>   util/uri.c: Coding style check, Only whitespace involved
>   util/uri.c: remove brackets that wrap `return` statement's content.
>   util/uri.c: wrap single statement blocks with braces {}
>
> Thomas Huth (1):
>   tests/libqos: Check for valid dev pointer when looking for PCI devices
>
>  tests/libqos/virtio-pci.c |    4 +-
>  util/uri.c                | 1733 ++++++++++++++++++++++++---------------------
>  .gitpublish               |   51 ++
>  README                    |   31 +-
>  4 files changed, 1014 insertions(+), 805 deletions(-)
>  create mode 100644 .gitpublish

Applied, thanks.

-- PMM

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

end of thread, other threads:[~2018-03-05 18:55 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-13 17:48 [Qemu-devel] [PULL 0/6] Block patches Kevin Wolf
2013-12-13 17:48 ` [Qemu-devel] [PULL 1/6] sheepdog: check if '-o redundancy' is passed from user Kevin Wolf
2013-12-13 17:48 ` [Qemu-devel] [PULL 2/6] qapi-schema.json: Change 1.8 reference to 2.0 Kevin Wolf
2013-12-13 17:49 ` [Qemu-devel] [PULL 3/6] block/vvfat: Fix compiler warnings for OpenBSD Kevin Wolf
2013-12-13 17:49 ` [Qemu-devel] [PULL 4/6] block: expect get_block_status errors in bdrv_make_zero Kevin Wolf
2013-12-13 17:49 ` [Qemu-devel] [PULL 5/6] qemu-img: make progress output more accurate during convert Kevin Wolf
2013-12-13 17:49 ` [Qemu-devel] [PULL 6/6] blkdebug: Use QLIST_FOREACH_SAFE to resume IO Kevin Wolf
  -- strict thread matches above, loose matches on Subject: below --
2018-03-05  9:40 [Qemu-devel] [PULL 0/6] Block patches Stefan Hajnoczi
2018-03-05  9:52 ` no-reply
2018-03-05 18:55 ` Peter Maydell
2014-06-23  9:31 Stefan Hajnoczi
2014-06-23 12:18 ` Peter Maydell
2013-01-14 10:01 Kevin Wolf
2013-01-20 14:47 ` Anthony Liguori
2011-05-03 11:08 Kevin Wolf
2011-05-03 12:44 ` Anthony Liguori
2010-08-03 14:44 Kevin Wolf
2010-08-09 13:41 ` Anthony Liguori

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).