throttle: Use bs->throttle_state instead of bs->io_limits_enabled
commita0d64a61db602696f4f1895a890c65eda5b3b618
authorAlberto Garcia <berto@igalia.com>
Wed, 4 Nov 2015 13:15:36 +0000 (4 15:15 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 11 Nov 2015 15:25:47 +0000 (11 16:25 +0100)
treea448fb1c4f0a3b60b0fb09f0bd81beab9ef748db
parent5ac724184c286b367525035eabf4b8bb4a386c54
throttle: Use bs->throttle_state instead of bs->io_limits_enabled

There are two ways to check for I/O limits in a BlockDriverState:

- bs->throttle_state: if this pointer is not NULL, it means that this
  BDS is member of a throttling group, its ThrottleTimers structure
  has been initialized and its I/O limits are ready to be applied.

- bs->io_limits_enabled: if true it means that the throttle_state
  pointer is valid _and_ the limits are currently enabled.

The latter is used in several places to check whether a BDS has I/O
limits configured, but what it really checks is whether requests
are being throttled or not. For example, io_limits_enabled can be
temporarily set to false in cases like bdrv_read_unthrottled() without
otherwise touching the throtting configuration of that BDS.

This patch replaces bs->io_limits_enabled with bs->throttle_state in
all cases where what we really want to check is the existence of I/O
limits, not whether they are currently enabled or not.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c
block/qapi.c
blockdev.c
include/block/block_int.h