[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 17/22] qcow2: Return the original error code in qcow2_co_pwrite_ze
From: |
Max Reitz |
Subject: |
[PULL 17/22] qcow2: Return the original error code in qcow2_co_pwrite_zeroes() |
Date: |
Tue, 15 Sep 2020 12:46:22 +0200 |
From: Alberto Garcia <berto@igalia.com>
This function checks the current status of a (sub)cluster in order to
see if an unaligned 'write zeroes' request can be done efficiently by
simply updating the L2 metadata and without having to write actual
zeroes to disk.
If the situation does not allow using the fast path then the function
returns -ENOTSUP and the caller falls back to writing zeroes.
If can happen however that the aforementioned check returns an actual
error code so in this case we should pass it to the caller.
Signed-off-by: Alberto Garcia <berto@igalia.com>
Message-Id: <20200909123739.719-1-berto@igalia.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
---
block/qcow2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/qcow2.c b/block/qcow2.c
index d241fb734c..77c43ce178 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -3907,7 +3907,7 @@ static coroutine_fn int
qcow2_co_pwrite_zeroes(BlockDriverState *bs,
type != QCOW2_SUBCLUSTER_ZERO_PLAIN &&
type != QCOW2_SUBCLUSTER_ZERO_ALLOC)) {
qemu_co_mutex_unlock(&s->lock);
- return -ENOTSUP;
+ return ret < 0 ? ret : -ENOTSUP;
}
} else {
qemu_co_mutex_lock(&s->lock);
--
2.26.2
- [PULL 07/22] qemu-img: avoid unaligned read requests during convert, (continued)
- [PULL 07/22] qemu-img: avoid unaligned read requests during convert, Max Reitz, 2020/09/15
- [PULL 08/22] qcow2: Use macros for the L1, refcount and bitmap table entry sizes, Max Reitz, 2020/09/15
- [PULL 10/22] qcow2: Don't check nb_clusters when removing l2meta from the list, Max Reitz, 2020/09/15
- [PULL 11/22] qcow2: Rewrite the documentation of qcow2_alloc_cluster_offset(), Max Reitz, 2020/09/15
- [PULL 12/22] qemu-img: Explicit number replaced by a constant, Max Reitz, 2020/09/15
- [PULL 09/22] qcow2: Fix removal of list members from BDRVQcow2State.cluster_allocs, Max Reitz, 2020/09/15
- [PULL 13/22] iotests: Skip test_stream_parallel in test 030 when doing "make check", Max Reitz, 2020/09/15
- [PULL 14/22] block/vhdx: Support vhdx image only with 512 bytes logical sector size, Max Reitz, 2020/09/15
- [PULL 15/22] qcow2: Handle QCowL2Meta on error in preallocate_co(), Max Reitz, 2020/09/15
- [PULL 16/22] qcow2: Make qcow2_free_any_clusters() free only one cluster, Max Reitz, 2020/09/15
- [PULL 17/22] qcow2: Return the original error code in qcow2_co_pwrite_zeroes(),
Max Reitz <=
- [PULL 18/22] block/rbd: remove runtime_opts, Max Reitz, 2020/09/15
- [PULL 19/22] block/qcow: remove runtime opts, Max Reitz, 2020/09/15
- [PULL 22/22] block/rbd: add 'namespace' to qemu_rbd_strong_runtime_opts[], Max Reitz, 2020/09/15
- [PULL 21/22] qcow2: Convert qcow2_alloc_cluster_offset() into qcow2_alloc_host_offset(), Max Reitz, 2020/09/15
- [PULL 20/22] qcow2: Make preallocate_co() resize the image to the correct size, Max Reitz, 2020/09/15
- Re: [PULL 00/22] Block patches, Peter Maydell, 2020/09/15