summaryrefslogtreecommitdiff
path: root/block.c
diff options
context:
space:
mode:
Diffstat (limited to 'block.c')
-rw-r--r--block.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/block.c b/block.c
index 932ce58265..cb21a5fa61 100644
--- a/block.c
+++ b/block.c
@@ -192,7 +192,7 @@ void bdrv_io_limits_enable(BlockDriverState *bs)
* @is_write: is the IO a write
*/
static void bdrv_io_limits_intercept(BlockDriverState *bs,
- int nb_sectors,
+ unsigned int bytes,
bool is_write)
{
/* does this io must wait */
@@ -205,9 +205,8 @@ static void bdrv_io_limits_intercept(BlockDriverState *bs,
}
/* the IO will be executed, do the accounting */
- throttle_account(&bs->throttle_state,
- is_write,
- nb_sectors * BDRV_SECTOR_SIZE);
+ throttle_account(&bs->throttle_state, is_write, bytes);
+
/* if the next request must wait -> do nothing */
if (throttle_schedule_timer(&bs->throttle_state, is_write)) {
@@ -2968,8 +2967,7 @@ static int coroutine_fn bdrv_co_do_preadv(BlockDriverState *bs,
/* throttling disk I/O */
if (bs->io_limits_enabled) {
- /* TODO Switch to byte granularity */
- bdrv_io_limits_intercept(bs, bytes >> BDRV_SECTOR_BITS, false);
+ bdrv_io_limits_intercept(bs, bytes, false);
}
/* Align read if necessary by padding qiov */
@@ -3193,8 +3191,7 @@ static int coroutine_fn bdrv_co_do_pwritev(BlockDriverState *bs,
/* throttling disk I/O */
if (bs->io_limits_enabled) {
- /* TODO Switch to byte granularity */
- bdrv_io_limits_intercept(bs, bytes >> BDRV_SECTOR_BITS, true);
+ bdrv_io_limits_intercept(bs, bytes, true);
}
/*