[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 07/10] mirror: limit niov to IOV_MAX elements, again
From: |
Jeff Cody |
Subject: |
[Qemu-block] [PULL 07/10] mirror: limit niov to IOV_MAX elements, again |
Date: |
Tue, 28 Jun 2016 23:10:41 -0400 |
From: John Snow <address@hidden>
During the refactor of mirror_iteration in e5b43573,
we regressed the fix introduced in cae98cb8.
This patch re-adds IOV_MAX checking to cases where we
aren't checking alignment (and size) already.
Signed-off-by: John Snow <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>
---
block/mirror.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/block/mirror.c b/block/mirror.c
index 42ebc3b..5bac906 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -231,11 +231,14 @@ static int mirror_do_read(MirrorBlockJob *s, int64_t
sector_num,
int sectors_per_chunk, nb_chunks;
int ret;
MirrorOp *op;
+ int max_sectors;
sectors_per_chunk = s->granularity >> BDRV_SECTOR_BITS;
+ max_sectors = sectors_per_chunk * s->max_iov;
/* We can only handle as much as buf_size at a time. */
nb_sectors = MIN(s->buf_size >> BDRV_SECTOR_BITS, nb_sectors);
+ nb_sectors = MIN(max_sectors, nb_sectors);
assert(nb_sectors);
ret = nb_sectors;
--
1.9.3
- [Qemu-block] [PULL 00/10] Block patches, Jeff Cody, 2016/06/28
- [Qemu-block] [PULL 01/10] block/gluster: add support for SEEK_DATA/SEEK_HOLE, Jeff Cody, 2016/06/28
- [Qemu-block] [PULL 02/10] block/nfs: refuse readahead if cache.direct is on, Jeff Cody, 2016/06/28
- [Qemu-block] [PULL 03/10] block/nfs: add support for libnfs pagecache, Jeff Cody, 2016/06/28
- [Qemu-block] [PULL 04/10] mirror: fix trace_mirror_yield_in_flight usage in mirror_iteration(), Jeff Cody, 2016/06/28
- [Qemu-block] [PULL 05/10] block/gluster: add support for selecting debug logging level, Jeff Cody, 2016/06/28
- [Qemu-block] [PULL 06/10] mirror: clarify mirror_do_read return code, Jeff Cody, 2016/06/28
- [Qemu-block] [PULL 07/10] mirror: limit niov to IOV_MAX elements, again,
Jeff Cody <=
- [Qemu-block] [PULL 08/10] iotests: add small-granularity mirror test, Jeff Cody, 2016/06/28
- [Qemu-block] [PULL 09/10] blockjob: assert(cb) when create job, Jeff Cody, 2016/06/28
- [Qemu-block] [PULL 10/10] mirror: fix misleading comments, Jeff Cody, 2016/06/28
- Re: [Qemu-block] [PULL 00/10] Block patches, Peter Maydell, 2016/06/29