Skip to content
  • Hanna Reitz's avatar
    abc521a9
    block: Add BlockDriver.bdrv_gather_child_options · abc521a9
    Hanna Reitz authored
    
    
    Some follow-up patches will rework the way bs->full_open_options is
    refreshed in bdrv_refresh_filename(). The new implementation will remove
    the need for the block drivers' bdrv_refresh_filename() implementations
    to set bs->full_open_options; instead, it will be generic and use static
    information from each block driver.
    
    However, by implementing bdrv_gather_child_options(), block drivers will
    still be able to override the way the full_open_options of their
    children are incorporated into their own.
    
    We need to implement this function for VMDK because we have to prevent
    the generic implementation from gathering the options of all children:
    It is not possible to specify options for the extents through the
    runtime options.
    
    For quorum, the child names that would be used by the generic
    implementation and the ones that we actually (currently) want to use
    differ. See quorum_gather_child_options() for more information.
    
    Note that both of these are cases which are not ideal: In case of VMDK
    it would probably be nice to be able to specify options for all extents.
    In case of quorum, the current runtime option structure is simply broken
    and needs to be fixed (but that is left for another patch).
    
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    Reviewed-by: default avatarAlberto Garcia <berto@igalia.com>
    Message-id: 20190201192935.18394-23-mreitz@redhat.com
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    abc521a9
    block: Add BlockDriver.bdrv_gather_child_options
    Hanna Reitz authored
    
    
    Some follow-up patches will rework the way bs->full_open_options is
    refreshed in bdrv_refresh_filename(). The new implementation will remove
    the need for the block drivers' bdrv_refresh_filename() implementations
    to set bs->full_open_options; instead, it will be generic and use static
    information from each block driver.
    
    However, by implementing bdrv_gather_child_options(), block drivers will
    still be able to override the way the full_open_options of their
    children are incorporated into their own.
    
    We need to implement this function for VMDK because we have to prevent
    the generic implementation from gathering the options of all children:
    It is not possible to specify options for the extents through the
    runtime options.
    
    For quorum, the child names that would be used by the generic
    implementation and the ones that we actually (currently) want to use
    differ. See quorum_gather_child_options() for more information.
    
    Note that both of these are cases which are not ideal: In case of VMDK
    it would probably be nice to be able to specify options for all extents.
    In case of quorum, the current runtime option structure is simply broken
    and needs to be fixed (but that is left for another patch).
    
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    Reviewed-by: default avatarAlberto Garcia <berto@igalia.com>
    Message-id: 20190201192935.18394-23-mreitz@redhat.com
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
Loading