[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write
From: |
Peter Lieven |
Subject: |
[Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests |
Date: |
Fri, 5 Sep 2014 18:51:26 +0200 |
Signed-off-by: Peter Lieven <address@hidden>
---
block.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/block.c b/block.c
index 2c4a5de..fa4c34b 100644
--- a/block.c
+++ b/block.c
@@ -3215,6 +3215,13 @@ static int coroutine_fn
bdrv_co_do_readv(BlockDriverState *bs,
return -EINVAL;
}
+ if (bs->bl.max_transfer_length && nb_sectors > bs->bl.max_transfer_length)
{
+ error_report("read of %d sectors at sector %ld exceeds device max"
+ " transfer length of %d sectors.", nb_sectors, sector_num,
+ bs->bl.max_transfer_length);
+ return -EINVAL;
+ }
+
return bdrv_co_do_preadv(bs, sector_num << BDRV_SECTOR_BITS,
nb_sectors << BDRV_SECTOR_BITS, qiov, flags);
}
@@ -3507,6 +3514,13 @@ static int coroutine_fn
bdrv_co_do_writev(BlockDriverState *bs,
return -EINVAL;
}
+ if (bs->bl.max_transfer_length && nb_sectors > bs->bl.max_transfer_length)
{
+ error_report("write of %d sectors at sector %ld exceeds device max"
+ " transfer length of %d sectors.", nb_sectors, sector_num,
+ bs->bl.max_transfer_length);
+ return -EINVAL;
+ }
+
return bdrv_co_do_pwritev(bs, sector_num << BDRV_SECTOR_BITS,
nb_sectors << BDRV_SECTOR_BITS, qiov, flags);
}
--
1.7.9.5
- [Qemu-devel] [PATCH 0/4] introduce max_transfer_length, Peter Lieven, 2014/09/05
- [Qemu-devel] [PATCH 1/4] BlockLimits: introduce max_transfer_length, Peter Lieven, 2014/09/05
- [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests,
Peter Lieven <=
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, BenoƮt Canet, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Paolo Bonzini, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Peter Lieven, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Paolo Bonzini, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Peter Lieven, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Paolo Bonzini, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Peter Lieven, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Kevin Wolf, 2014/09/23
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Peter Lieven, 2014/09/23
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Kevin Wolf, 2014/09/23