Skip to content
  • Luiz Capitulino's avatar
    block: Keep track of devices' I/O status · 28a7282a
    Luiz Capitulino authored
    
    
    This commit adds support to the BlockDriverState type to keep track
    of devices' I/O status.
    
    There are three possible status: BDRV_IOS_OK (no error), BDRV_IOS_ENOSPC
    (no space error) and BDRV_IOS_FAILED (any other error). The distinction
    between no space and other errors is important because a management
    application may want to watch for no space in order to extend the
    space assigned to the VM and put it to run again.
    
    Qemu devices supporting the I/O status feature have to enable it
    explicitly by calling bdrv_iostatus_enable() _and_ have to be
    configured to stop the VM on errors (ie. werror=stop|enospc or
    rerror=stop).
    
    In case of multiple errors being triggered in sequence only the first
    one is stored. The I/O status is always reset to BDRV_IOS_OK when the
    'cont' command is issued.
    
    Next commits will add support to some devices and extend the
    query-block/info block commands to return the I/O status information.
    
    Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
    Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    28a7282a