]> git.proxmox.com Git - mirror_qemu.git/commit - block/block-copy.c
block-copy: refactor copy_range handling
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Fri, 28 May 2021 14:16:28 +0000 (17:16 +0300)
committerKevin Wolf <kwolf@redhat.com>
Wed, 2 Jun 2021 12:23:20 +0000 (14:23 +0200)
commitbed9523471c13a44cdc15ed9ba0fb78cadf8c142
tree1cdb56e9ad638912152cca52f0fc7e65d57e73b6
parent8146b357d0cb3a3f5d500a1536f9f0e1ff3302cc
block-copy: refactor copy_range handling

Currently we update s->use_copy_range and s->copy_size in
block_copy_do_copy().

It's not very good:

1. block_copy_do_copy() is intended to be a simple function, that wraps
bdrv_co_<io> functions for need of block copy. That's why we don't pass
BlockCopyTask into it. So, block_copy_do_copy() is bad place for
manipulation with generic state of block-copy process

2. We are going to make block-copy thread-safe. So, it's good to move
manipulation with state of block-copy to the places where we'll need
critical sections anyway, to not introduce extra synchronization
primitives in block_copy_do_copy().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210528141628.44287-3-vsementsov@virtuozzo.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/block-copy.c