mirror: Update signature of mirror_clip_sectors()
Rather than having a void function that modifies its input in-place as the output, change the signature to reduce a layer of indirection and return the result. Suggested-by: John Snow <jsnow@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Reviewed-by: Jeff Cody <jcody@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
e6f2419389
commit
931e52607f
|
@ -176,11 +176,11 @@ static void mirror_read_complete(void *opaque, int ret)
|
||||||
aio_context_release(blk_get_aio_context(s->common.blk));
|
aio_context_release(blk_get_aio_context(s->common.blk));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void mirror_clip_sectors(MirrorBlockJob *s,
|
static inline int mirror_clip_sectors(MirrorBlockJob *s,
|
||||||
int64_t sector_num,
|
int64_t sector_num,
|
||||||
int *nb_sectors)
|
int nb_sectors)
|
||||||
{
|
{
|
||||||
*nb_sectors = MIN(*nb_sectors,
|
return MIN(nb_sectors,
|
||||||
s->bdev_length / BDRV_SECTOR_SIZE - sector_num);
|
s->bdev_length / BDRV_SECTOR_SIZE - sector_num);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,7 +216,8 @@ static int mirror_cow_align(MirrorBlockJob *s,
|
||||||
}
|
}
|
||||||
/* Clipping may result in align_nb_sectors unaligned to chunk boundary, but
|
/* Clipping may result in align_nb_sectors unaligned to chunk boundary, but
|
||||||
* that doesn't matter because it's already the end of source image. */
|
* that doesn't matter because it's already the end of source image. */
|
||||||
mirror_clip_sectors(s, align_sector_num, &align_nb_sectors);
|
align_nb_sectors = mirror_clip_sectors(s, align_sector_num,
|
||||||
|
align_nb_sectors);
|
||||||
|
|
||||||
ret = align_sector_num + align_nb_sectors - (*sector_num + *nb_sectors);
|
ret = align_sector_num + align_nb_sectors - (*sector_num + *nb_sectors);
|
||||||
*sector_num = align_sector_num;
|
*sector_num = align_sector_num;
|
||||||
|
@ -445,7 +446,7 @@ static uint64_t coroutine_fn mirror_iteration(MirrorBlockJob *s)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
mirror_clip_sectors(s, sector_num, &io_sectors);
|
io_sectors = mirror_clip_sectors(s, sector_num, io_sectors);
|
||||||
switch (mirror_method) {
|
switch (mirror_method) {
|
||||||
case MIRROR_METHOD_COPY:
|
case MIRROR_METHOD_COPY:
|
||||||
io_sectors = mirror_do_read(s, sector_num, io_sectors);
|
io_sectors = mirror_do_read(s, sector_num, io_sectors);
|
||||||
|
|
Loading…
Reference in a new issue