[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v9 02/13] block/backup: split shareable copying
From: |
Max Reitz |
Subject: |
Re: [Qemu-devel] [PATCH v9 02/13] block/backup: split shareable copying part from backup_do_cow |
Date: |
Wed, 28 Aug 2019 16:22:11 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
On 26.08.19 18:13, Vladimir Sementsov-Ogievskiy wrote:
> Split copying logic which will be shared with backup-top filter.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> ---
> block/backup.c | 47 ++++++++++++++++++++++++++++++++---------------
> 1 file changed, 32 insertions(+), 15 deletions(-)
>
> diff --git a/block/backup.c b/block/backup.c
> index 33b144305f..13a1d80157 100644
> --- a/block/backup.c
> +++ b/block/backup.c
> @@ -248,26 +248,18 @@ static int64_t
> backup_bitmap_reset_unallocated(BackupBlockJob *s,
> return ret;
> }
>
> -static int coroutine_fn backup_do_cow(BackupBlockJob *job,
> - int64_t offset, uint64_t bytes,
> - bool *error_is_read,
> - bool is_write_notifier)
> +static int coroutine_fn backup_do_copy(BackupBlockJob *job,
> + int64_t offset, uint64_t bytes,
> + bool *error_is_read,
> + bool is_write_notifier)
> {
> - CowRequest cow_request;
> int ret = 0;
> - int64_t start, end; /* bytes */
> + int64_t start = offset, end = bytes + offset; /* bytes */
Maybe just rename the “offset” parameter to “start”, replace the “bytes”
parameter by an “end” parameter, and drop this line?
Max
> void *bounce_buffer = NULL;
> int64_t status_bytes;
>
> - qemu_co_rwlock_rdlock(&job->flush_rwlock);
> -
> - start = QEMU_ALIGN_DOWN(offset, job->cluster_size);
> - end = QEMU_ALIGN_UP(bytes + offset, job->cluster_size);
> -
> - trace_backup_do_cow_enter(job, start, offset, bytes);
> -
> - wait_for_overlapping_requests(job, start, end);
> - cow_request_begin(&cow_request, job, start, end);
> + assert(QEMU_IS_ALIGNED(start, job->cluster_size));
> + assert(QEMU_IS_ALIGNED(end, job->cluster_size));
>
> while (start < end) {
> int64_t dirty_end;
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH v9 00/13] backup-top filter driver for backup, Vladimir Sementsov-Ogievskiy, 2019/08/26
- [Qemu-devel] [PATCH v9 10/13] block/io: refactor wait_serialising_requests, Vladimir Sementsov-Ogievskiy, 2019/08/26
- [Qemu-devel] [PATCH v9 04/13] block/backup: adjust block-copy functions style, Vladimir Sementsov-Ogievskiy, 2019/08/26
- [Qemu-devel] [PATCH v9 11/13] block: add lock/unlock range functions, Vladimir Sementsov-Ogievskiy, 2019/08/26
- [Qemu-devel] [PATCH v9 01/13] block/backup: fix backup_cow_with_offload for last cluster, Vladimir Sementsov-Ogievskiy, 2019/08/26