• L
    block: Keep track of devices' I/O status · 28a7282a
    Luiz Capitulino 提交于
    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: NLuiz Capitulino <lcapitulino@redhat.com>
    Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    28a7282a
block.c 92.4 KB