Message ID | 1464995213-13694-1-git-send-email-eblake@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Am 04.06.2016 um 01:06 hat Eric Blake geschrieben: > If the amount of data to read ends exactly on the total size > of the bs, then we were wasting time creating a local qiov > to read the data in preparation for what would normally be > appending zeroes beyond the end, even though this corner case > has nothing further to do. > > Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com>
diff --git a/block/io.c b/block/io.c index aaeedaa..c8b323e 100644 --- a/block/io.c +++ b/block/io.c @@ -996,7 +996,7 @@ static int coroutine_fn bdrv_aligned_preadv(BlockDriverState *bs, max_nb_sectors = ROUND_UP(MAX(0, total_sectors - sector_num), align >> BDRV_SECTOR_BITS); - if (nb_sectors < max_nb_sectors) { + if (nb_sectors <= max_nb_sectors) { ret = bdrv_driver_preadv(bs, offset, bytes, qiov, flags); } else if (max_nb_sectors > 0) { QEMUIOVector local_qiov;
If the amount of data to read ends exactly on the total size of the bs, then we were wasting time creating a local qiov to read the data in preparation for what would normally be appending zeroes beyond the end, even though this corner case has nothing further to do. Signed-off-by: Eric Blake <eblake@redhat.com> --- block/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)