• A
    throttle: Use bs->throttle_state instead of bs->io_limits_enabled · a0d64a61
    Alberto Garcia 提交于
    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: NAlberto Garcia <berto@igalia.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    a0d64a61
block.c 112.3 KB