qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH v4 0/5] block: allow commit to unmap zero blocks


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH v4 0/5] block: allow commit to unmap zero blocks
Date: Mon, 18 Nov 2024 10:57:28 +0300
User-agent: Mozilla Thunderbird

On 26.10.24 19:30, Vincent Vanlaer wrote:
This patch series adds support for zero blocks in non-active commits.
The first three patches in the series refactor the relevant code, patch
four makes the actual changes, and the last patch adds a test for the
new functionality.

---

Changes since v3:
- minor reformating based on checkpatch.pl
- moved tracepoint in commit_iteration before first possible return on
   error
- renamed the handle_error label in commit_iteration to fail and
   prevented the happy path from passing through this label
- moved test script to the tests/qemu-iotests/tests folder and named it
   commit-zero-blocks

Changes since v2:
- moved main loop of commit_run to a separate function and refactored
   the error handling.
- call blk_co_pwrite_zero even if the size of the zero region does not
   align with the sectors of the base image. This removes the need for
   the CommitMethod enum

Changes since v1:
- split up the implementation in three separate commits
- removed accidentally left over includes from testing

Vincent Vanlaer (5):
   block: get type of block allocation in commit_run
   block: move commit_run loop to separate function
   block: refactor error handling of commit_iteration
   block: allow commit to unmap zero blocks
   block: add test non-active commit with zeroed data

  block/commit.c                                | 116 +++++++++++++-----
  tests/qemu-iotests/tests/commit-zero-blocks   |  96 +++++++++++++++
  .../qemu-iotests/tests/commit-zero-blocks.out |  54 ++++++++
  3 files changed, 232 insertions(+), 34 deletions(-)
  create mode 100755 tests/qemu-iotests/tests/commit-zero-blocks
  create mode 100644 tests/qemu-iotests/tests/commit-zero-blocks.out


Thanks, applied to my block branch,

with

    diff --git a/block/commit.c b/block/commit.c
    index 5c24c8b80a..bfd969b13f 100644
    --- a/block/commit.c
    +++ b/block/commit.c
    @@ -172,7 +172,8 @@ static int commit_iteration(CommitBlockJob *s, int64_t 
offset,
         *requested_bytes = bytes;

         return 0;
    -fail:;
    +
    +fail:
         BlockErrorAction action = block_job_error_action(&s->common, 
s->on_error,
                                                          error_in_source, 
-ret);
         if (action == BLOCK_ERROR_ACTION_REPORT) {

change to patch 3.


Unfortunately, I've missed soft-freeze on 05.11. Will send PR when 10.0 
development phase opens.

--
Best regards,
Vladimir




reply via email to

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