* [PULL 0/7] Block layer patches
@ 2020-07-03 9:21 Kevin Wolf
2020-07-03 9:21 ` [PULL 1/7] qemu-img convert: Don't pre-zero images Kevin Wolf
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: Kevin Wolf @ 2020-07-03 9:21 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
The following changes since commit 64f0ad8ad8e13257e7c912df470d46784b55c3fd:
Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2020-07-02' into staging (2020-07-02 15:54:09 +0100)
are available in the Git repository at:
git://repo.or.cz/qemu/kevin.git tags/for-upstream
for you to fetch changes up to 4f071a9460886667fde061c05b79dc786cc22e3c:
iotests: Fix 051 output after qdev_init_nofail() removal (2020-07-03 10:06:29 +0200)
----------------------------------------------------------------
Block layer patches:
- qemu-img convert: Don't pre-zero images (removes nowadays
counterproductive optimisation)
- qemu-storage-daemon: Fix object-del, cleaner shutdown
- vvfat: Check that the guest doesn't escape the given host directory
with read-write vvfat drives
- vvfat: Fix crash by out-of-bounds array writes for read-write drives
- iotests fixes
----------------------------------------------------------------
Kevin Wolf (3):
qemu-img convert: Don't pre-zero images
vvfat: Check that updated filenames are valid
vvfat: Fix array_remove_slice()
Max Reitz (1):
iotests.py: Do not wait() before communicate()
Philippe Mathieu-Daudé (1):
iotests: Fix 051 output after qdev_init_nofail() removal
Stefan Hajnoczi (2):
qemu-storage-daemon: remember to add qemu_object_opts
qemu-storage-daemon: add missing cleanup calls
block/vvfat.c | 67 +++++++++++++++++++------------------------
qemu-img.c | 9 ------
qemu-storage-daemon.c | 5 ++++
tests/qemu-iotests/iotests.py | 34 +++++++++++-----------
tests/qemu-iotests/051.pc.out | 4 +--
5 files changed, 53 insertions(+), 66 deletions(-)
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PULL 1/7] qemu-img convert: Don't pre-zero images
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
@ 2020-07-03 9:21 ` Kevin Wolf
2020-07-03 9:21 ` [PULL 2/7] qemu-storage-daemon: remember to add qemu_object_opts Kevin Wolf
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Kevin Wolf @ 2020-07-03 9:21 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
Since commit 5a37b60a61c, qemu-img create will pre-zero the target image
if it isn't already zero-initialised (most importantly, for host block
devices, but also iscsi etc.), so that writing explicit zeros wouldn't
be necessary later.
This could speed up the operation significantly, in particular when the
source image file was only sparsely populated. However, it also means
that some block are written twice: Once when pre-zeroing them, and then
when they are overwritten with actual data. On a full image, the
pre-zeroing is wasted work because everything will be overwritten.
In practice, write_zeroes typically turns out faster than writing
explicit zero buffers, but slow enough that first zeroing everything and
then overwriting parts can be a significant net loss.
Meanwhile, qemu-img convert was rewritten in 690c7301600 and zero blocks
are now written to the target using bdrv_co_pwrite_zeroes() if the
target could be pre-zeroed. This way we already make use of the faster
write_zeroes operation, but avoid writing any blocks twice.
Remove the pre-zeroing because these days this former optimisation has
actually turned into a pessimisation in the common case.
Reported-by: Nir Soffer <nsoffer@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200622151203.35624-1-kwolf@redhat.com>
Tested-by: Nir Soffer <nsoffer@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
qemu-img.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/qemu-img.c b/qemu-img.c
index d7e846e607..bdb9f6aa46 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -2084,15 +2084,6 @@ static int convert_do_copy(ImgConvertState *s)
s->has_zero_init = bdrv_has_zero_init(blk_bs(s->target));
}
- if (!s->has_zero_init && !s->target_has_backing &&
- bdrv_can_write_zeroes_with_unmap(blk_bs(s->target)))
- {
- ret = blk_make_zero(s->target, BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK);
- if (ret == 0) {
- s->has_zero_init = true;
- }
- }
-
/* Allocate buffer for copied data. For compressed images, only one cluster
* can be copied at a time. */
if (s->compressed) {
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PULL 2/7] qemu-storage-daemon: remember to add qemu_object_opts
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
2020-07-03 9:21 ` [PULL 1/7] qemu-img convert: Don't pre-zero images Kevin Wolf
@ 2020-07-03 9:21 ` Kevin Wolf
2020-07-03 9:21 ` [PULL 3/7] qemu-storage-daemon: add missing cleanup calls Kevin Wolf
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Kevin Wolf @ 2020-07-03 9:21 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
From: Stefan Hajnoczi <stefanha@redhat.com>
The --object option is supported by qemu-storage-daemon but the
qemu_object_opts QemuOptsList wasn't being added. As a result calls to
qemu_find_opts("object") failed with "There is no option group
'object'".
This patch fixes the object-del QMP command.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200619101132.2401756-2-stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
qemu-storage-daemon.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/qemu-storage-daemon.c b/qemu-storage-daemon.c
index 9e7adfe3a6..a01cbd6371 100644
--- a/qemu-storage-daemon.c
+++ b/qemu-storage-daemon.c
@@ -316,6 +316,7 @@ int main(int argc, char *argv[])
module_call_init(MODULE_INIT_QOM);
module_call_init(MODULE_INIT_TRACE);
+ qemu_add_opts(&qemu_object_opts);
qemu_add_opts(&qemu_trace_opts);
qcrypto_init(&error_fatal);
bdrv_init();
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PULL 3/7] qemu-storage-daemon: add missing cleanup calls
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
2020-07-03 9:21 ` [PULL 1/7] qemu-img convert: Don't pre-zero images Kevin Wolf
2020-07-03 9:21 ` [PULL 2/7] qemu-storage-daemon: remember to add qemu_object_opts Kevin Wolf
@ 2020-07-03 9:21 ` Kevin Wolf
2020-07-03 9:21 ` [PULL 4/7] vvfat: Check that updated filenames are valid Kevin Wolf
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Kevin Wolf @ 2020-07-03 9:21 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
From: Stefan Hajnoczi <stefanha@redhat.com>
Several components used by qemu-storage-daemon have cleanup functions
that aren't called. Keep the "valgrind --leak-check=full" as clean as
possible by invoking the necessary cleanup functions.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200619101132.2401756-3-stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
qemu-storage-daemon.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/qemu-storage-daemon.c b/qemu-storage-daemon.c
index a01cbd6371..7e9b0e0d3f 100644
--- a/qemu-storage-daemon.c
+++ b/qemu-storage-daemon.c
@@ -335,5 +335,9 @@ int main(int argc, char *argv[])
main_loop_wait(false);
}
+ monitor_cleanup();
+ qemu_chr_cleanup();
+ user_creatable_cleanup();
+
return EXIT_SUCCESS;
}
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PULL 4/7] vvfat: Check that updated filenames are valid
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
` (2 preceding siblings ...)
2020-07-03 9:21 ` [PULL 3/7] qemu-storage-daemon: add missing cleanup calls Kevin Wolf
@ 2020-07-03 9:21 ` Kevin Wolf
2020-07-03 9:21 ` [PULL 5/7] vvfat: Fix array_remove_slice() Kevin Wolf
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Kevin Wolf @ 2020-07-03 9:21 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
FAT allows only a restricted set of characters in file names, and for
some of the illegal characters, it's actually important that we catch
them: If filenames can contain '/', the guest can construct filenames
containing "../" and escape from the assigned vvfat directory. The same
problem could arise if ".." was ever accepted as a literal filename.
Fix this by adding a check that all filenames are valid in
check_directory_consistency().
Reported-by: Nathan Huckleberry <nhuck15@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200623175534.38286-2-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block/vvfat.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/block/vvfat.c b/block/vvfat.c
index c65a98e3ee..62230542e5 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -520,12 +520,31 @@ static void set_begin_of_direntry(direntry_t* direntry, uint32_t begin)
direntry->begin_hi = cpu_to_le16((begin >> 16) & 0xffff);
}
+static bool valid_filename(const unsigned char *name)
+{
+ unsigned char c;
+ if (!strcmp((const char*)name, ".") || !strcmp((const char*)name, "..")) {
+ return false;
+ }
+ for (; (c = *name); name++) {
+ if (!((c >= '0' && c <= '9') ||
+ (c >= 'A' && c <= 'Z') ||
+ (c >= 'a' && c <= 'z') ||
+ c > 127 ||
+ strchr("$%'-_@~`!(){}^#&.+,;=[]", c) != NULL))
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
static uint8_t to_valid_short_char(gunichar c)
{
c = g_unichar_toupper(c);
if ((c >= '0' && c <= '9') ||
(c >= 'A' && c <= 'Z') ||
- strchr("$%'-_@~`!(){}^#&", c) != 0) {
+ strchr("$%'-_@~`!(){}^#&", c) != NULL) {
return c;
} else {
return 0;
@@ -2098,6 +2117,10 @@ DLOG(fprintf(stderr, "check direntry %d:\n", i); print_direntry(direntries + i))
}
lfn.checksum = 0x100; /* cannot use long name twice */
+ if (!valid_filename(lfn.name)) {
+ fprintf(stderr, "Invalid file name\n");
+ goto fail;
+ }
if (path_len + 1 + lfn.len >= PATH_MAX) {
fprintf(stderr, "Name too long: %s/%s\n", path, lfn.name);
goto fail;
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PULL 5/7] vvfat: Fix array_remove_slice()
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
` (3 preceding siblings ...)
2020-07-03 9:21 ` [PULL 4/7] vvfat: Check that updated filenames are valid Kevin Wolf
@ 2020-07-03 9:21 ` Kevin Wolf
2020-07-03 9:21 ` [PULL 6/7] iotests.py: Do not wait() before communicate() Kevin Wolf
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Kevin Wolf @ 2020-07-03 9:21 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
array_remove_slice() calls array_roll() with array->next - 1 as the
destination index. This is only correct for count == 1, otherwise we're
writing past the end of the array. array->next - count would be correct.
However, this is the only place ever calling array_roll(), so this
rather complicated operation isn't even necessary.
Fix the problem and simplify the code by replacing it with a single
memmove() call. array_roll() can now be removed.
Reported-by: Nathan Huckleberry <nhuck15@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200623175534.38286-3-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block/vvfat.c | 42 +++++-------------------------------------
1 file changed, 5 insertions(+), 37 deletions(-)
diff --git a/block/vvfat.c b/block/vvfat.c
index 62230542e5..2eb8cbb19f 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -140,48 +140,16 @@ static inline void* array_insert(array_t* array,unsigned int index,unsigned int
return array->pointer+index*array->item_size;
}
-/* this performs a "roll", so that the element which was at index_from becomes
- * index_to, but the order of all other elements is preserved. */
-static inline int array_roll(array_t* array,int index_to,int index_from,int count)
-{
- char* buf;
- char* from;
- char* to;
- int is;
-
- if(!array ||
- index_to<0 || index_to>=array->next ||
- index_from<0 || index_from>=array->next)
- return -1;
-
- if(index_to==index_from)
- return 0;
-
- is=array->item_size;
- from=array->pointer+index_from*is;
- to=array->pointer+index_to*is;
- buf=g_malloc(is*count);
- memcpy(buf,from,is*count);
-
- if(index_to<index_from)
- memmove(to+is*count,to,from-to);
- else
- memmove(from,from+is*count,to-from);
-
- memcpy(to,buf,is*count);
-
- g_free(buf);
-
- return 0;
-}
-
static inline int array_remove_slice(array_t* array,int index, int count)
{
assert(index >=0);
assert(count > 0);
assert(index + count <= array->next);
- if(array_roll(array,array->next-1,index,count))
- return -1;
+
+ memmove(array->pointer + index * array->item_size,
+ array->pointer + (index + count) * array->item_size,
+ (array->next - index - count) * array->item_size);
+
array->next -= count;
return 0;
}
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PULL 6/7] iotests.py: Do not wait() before communicate()
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
` (4 preceding siblings ...)
2020-07-03 9:21 ` [PULL 5/7] vvfat: Fix array_remove_slice() Kevin Wolf
@ 2020-07-03 9:21 ` Kevin Wolf
2020-07-03 9:21 ` [PULL 7/7] iotests: Fix 051 output after qdev_init_nofail() removal Kevin Wolf
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Kevin Wolf @ 2020-07-03 9:21 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
From: Max Reitz <mreitz@redhat.com>
Waiting on a process for which we have a pipe will stall if the process
outputs more data than fits into the OS-provided buffer. We must use
communicate() before wait(), and in fact, communicate() perfectly
replaces wait() already.
We have to drop the stderr=subprocess.STDOUT parameter from
subprocess.Popen() in qemu_nbd_early_pipe(), because stderr is passed on
to the child process, so if we do not drop this parameter, communicate()
will hang (because the pipe is not closed).
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20200630083711.40567-1-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/iotests.py | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 5ea4c4df8b..ef739dd1e3 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -146,11 +146,12 @@ def qemu_img_pipe(*args):
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
universal_newlines=True)
- exitcode = subp.wait()
- if exitcode < 0:
+ output = subp.communicate()[0]
+ if subp.returncode < 0:
sys.stderr.write('qemu-img received signal %i: %s\n'
- % (-exitcode, ' '.join(qemu_img_args + list(args))))
- return subp.communicate()[0]
+ % (-subp.returncode,
+ ' '.join(qemu_img_args + list(args))))
+ return output
def qemu_img_log(*args):
result = qemu_img_pipe(*args)
@@ -177,11 +178,11 @@ def qemu_io(*args):
subp = subprocess.Popen(args, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
universal_newlines=True)
- exitcode = subp.wait()
- if exitcode < 0:
+ output = subp.communicate()[0]
+ if subp.returncode < 0:
sys.stderr.write('qemu-io received signal %i: %s\n'
- % (-exitcode, ' '.join(args)))
- return subp.communicate()[0]
+ % (-subp.returncode, ' '.join(args)))
+ return output
def qemu_io_log(*args):
result = qemu_io(*args)
@@ -257,15 +258,14 @@ def qemu_nbd_early_pipe(*args):
and its output in case of an error'''
subp = subprocess.Popen(qemu_nbd_args + ['--fork'] + list(args),
stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT,
universal_newlines=True)
- exitcode = subp.wait()
- if exitcode < 0:
+ output = subp.communicate()[0]
+ if subp.returncode < 0:
sys.stderr.write('qemu-nbd received signal %i: %s\n' %
- (-exitcode,
+ (-subp.returncode,
' '.join(qemu_nbd_args + ['--fork'] + list(args))))
- return exitcode, subp.communicate()[0] if exitcode else ''
+ return subp.returncode, output if subp.returncode else ''
def qemu_nbd_popen(*args):
'''Run qemu-nbd in daemon mode and return the parent's exit code'''
@@ -1062,11 +1062,11 @@ def qemu_pipe(*args):
subp = subprocess.Popen(args, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
universal_newlines=True)
- exitcode = subp.wait()
- if exitcode < 0:
+ output = subp.communicate()[0]
+ if subp.returncode < 0:
sys.stderr.write('qemu received signal %i: %s\n' %
- (-exitcode, ' '.join(args)))
- return subp.communicate()[0]
+ (-subp.returncode, ' '.join(args)))
+ return output
def supported_formats(read_only=False):
'''Set 'read_only' to True to check ro-whitelist
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PULL 7/7] iotests: Fix 051 output after qdev_init_nofail() removal
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
` (5 preceding siblings ...)
2020-07-03 9:21 ` [PULL 6/7] iotests.py: Do not wait() before communicate() Kevin Wolf
@ 2020-07-03 9:21 ` Kevin Wolf
2020-07-03 10:14 ` [PULL 0/7] Block layer patches no-reply
2020-07-04 9:23 ` Peter Maydell
8 siblings, 0 replies; 10+ messages in thread
From: Kevin Wolf @ 2020-07-03 9:21 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Commit 96927c744 replaced qdev_init_nofail() call by
isa_realize_and_unref() which has a different error
message. Update the test output accordingly.
Gitlab CI error after merging b77b5b3dc7:
https://gitlab.com/qemu-project/qemu/-/jobs/597414772#L4375
Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: John Snow <jsnow@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200616154949.6586-1-philmd@redhat.com>
Message-Id: <20200624140446.15380-2-alex.bennee@linaro.org>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/051.pc.out | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/051.pc.out b/tests/qemu-iotests/051.pc.out
index 0ea80d35f0..da8ad87187 100644
--- a/tests/qemu-iotests/051.pc.out
+++ b/tests/qemu-iotests/051.pc.out
@@ -142,7 +142,7 @@ QEMU X.Y.Z monitor - type 'help' for more information
Testing: -drive if=ide
QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) QEMU_PROG: Initialization of device ide-hd failed: Device needs media, but drive is empty
+(qemu) QEMU_PROG: Device needs media, but drive is empty
Testing: -drive if=virtio
QEMU X.Y.Z monitor - type 'help' for more information
@@ -214,7 +214,7 @@ QEMU X.Y.Z monitor - type 'help' for more information
Testing: -drive file=TEST_DIR/t.qcow2,if=ide,readonly=on
QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) QEMU_PROG: Initialization of device ide-hd failed: Block node is read-only
+(qemu) QEMU_PROG: Block node is read-only
Testing: -drive file=TEST_DIR/t.qcow2,if=virtio,readonly=on
QEMU X.Y.Z monitor - type 'help' for more information
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PULL 0/7] Block layer patches
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
` (6 preceding siblings ...)
2020-07-03 9:21 ` [PULL 7/7] iotests: Fix 051 output after qdev_init_nofail() removal Kevin Wolf
@ 2020-07-03 10:14 ` no-reply
2020-07-04 9:23 ` Peter Maydell
8 siblings, 0 replies; 10+ messages in thread
From: no-reply @ 2020-07-03 10:14 UTC (permalink / raw)
To: kwolf; +Cc: kwolf, peter.maydell, qemu-devel, qemu-block
Patchew URL: https://patchew.org/QEMU/20200703092143.165594-1-kwolf@redhat.com/
Hi,
This series seems to have some coding style problems. See output below for
more information:
Subject: [PULL 0/7] Block layer patches
Type: series
Message-id: 20200703092143.165594-1-kwolf@redhat.com
=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===
From https://github.com/patchew-project/qemu
* [new tag] patchew/20200703092143.165594-1-kwolf@redhat.com -> patchew/20200703092143.165594-1-kwolf@redhat.com
Switched to a new branch 'test'
65e6f15 iotests: Fix 051 output after qdev_init_nofail() removal
cfd78ce iotests.py: Do not wait() before communicate()
0d0a798 vvfat: Fix array_remove_slice()
577c411 vvfat: Check that updated filenames are valid
0397c54 qemu-storage-daemon: add missing cleanup calls
f46fc30 qemu-storage-daemon: remember to add qemu_object_opts
aeda507 qemu-img convert: Don't pre-zero images
=== OUTPUT BEGIN ===
1/7 Checking commit aeda507d8d8c (qemu-img convert: Don't pre-zero images)
2/7 Checking commit f46fc3018757 (qemu-storage-daemon: remember to add qemu_object_opts)
3/7 Checking commit 0397c541a85e (qemu-storage-daemon: add missing cleanup calls)
4/7 Checking commit 577c411e9268 (vvfat: Check that updated filenames are valid)
ERROR: "(foo*)" should be "(foo *)"
#34: FILE: block/vvfat.c:526:
+ if (!strcmp((const char*)name, ".") || !strcmp((const char*)name, "..")) {
total: 1 errors, 0 warnings, 42 lines checked
Patch 4/7 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
5/7 Checking commit 0d0a798db814 (vvfat: Fix array_remove_slice())
6/7 Checking commit cfd78ce3cf07 (iotests.py: Do not wait() before communicate())
7/7 Checking commit 65e6f15ad9ab (iotests: Fix 051 output after qdev_init_nofail() removal)
=== OUTPUT END ===
Test command exited with code: 1
The full log is available at
http://patchew.org/logs/20200703092143.165594-1-kwolf@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PULL 0/7] Block layer patches
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
` (7 preceding siblings ...)
2020-07-03 10:14 ` [PULL 0/7] Block layer patches no-reply
@ 2020-07-04 9:23 ` Peter Maydell
8 siblings, 0 replies; 10+ messages in thread
From: Peter Maydell @ 2020-07-04 9:23 UTC (permalink / raw)
To: Kevin Wolf; +Cc: QEMU Developers, Qemu-block
On Fri, 3 Jul 2020 at 10:21, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit 64f0ad8ad8e13257e7c912df470d46784b55c3fd:
>
> Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2020-07-02' into staging (2020-07-02 15:54:09 +0100)
>
> are available in the Git repository at:
>
> git://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to 4f071a9460886667fde061c05b79dc786cc22e3c:
>
> iotests: Fix 051 output after qdev_init_nofail() removal (2020-07-03 10:06:29 +0200)
>
> ----------------------------------------------------------------
> Block layer patches:
>
> - qemu-img convert: Don't pre-zero images (removes nowadays
> counterproductive optimisation)
> - qemu-storage-daemon: Fix object-del, cleaner shutdown
> - vvfat: Check that the guest doesn't escape the given host directory
> with read-write vvfat drives
> - vvfat: Fix crash by out-of-bounds array writes for read-write drives
> - iotests fixes
>
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-07-04 9:25 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-03 9:21 [PULL 0/7] Block layer patches Kevin Wolf
2020-07-03 9:21 ` [PULL 1/7] qemu-img convert: Don't pre-zero images Kevin Wolf
2020-07-03 9:21 ` [PULL 2/7] qemu-storage-daemon: remember to add qemu_object_opts Kevin Wolf
2020-07-03 9:21 ` [PULL 3/7] qemu-storage-daemon: add missing cleanup calls Kevin Wolf
2020-07-03 9:21 ` [PULL 4/7] vvfat: Check that updated filenames are valid Kevin Wolf
2020-07-03 9:21 ` [PULL 5/7] vvfat: Fix array_remove_slice() Kevin Wolf
2020-07-03 9:21 ` [PULL 6/7] iotests.py: Do not wait() before communicate() Kevin Wolf
2020-07-03 9:21 ` [PULL 7/7] iotests: Fix 051 output after qdev_init_nofail() removal Kevin Wolf
2020-07-03 10:14 ` [PULL 0/7] Block layer patches no-reply
2020-07-04 9:23 ` Peter Maydell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.