Skip to content
  • Hanna Reitz's avatar
    081e4650
    block: Improve get_allocated_file_size's default · 081e4650
    Hanna Reitz authored
    
    
    There are two practical problems with bdrv_get_allocated_file_size()'s
    default right now:
    (1) For drivers with children, we should generally sum all their sizes
        instead of just passing the request through to bs->file.  The latter
        is good for filters, but not so much for format drivers.
    
    (2) Filters need not have bs->file, so we should actually go to the
        filtered child instead of hard-coding bs->file.
    
    Fix this by splitting the default implementation into three branches:
    (1) For filter drivers: Return the size of the filtered child
    (2) For protocol drivers: Return -ENOTSUP, because the default
        implementation cannot make a guess
    (3) For other drivers: Sum all data-bearing children's sizes
    
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    081e4650
    block: Improve get_allocated_file_size's default
    Hanna Reitz authored
    
    
    There are two practical problems with bdrv_get_allocated_file_size()'s
    default right now:
    (1) For drivers with children, we should generally sum all their sizes
        instead of just passing the request through to bs->file.  The latter
        is good for filters, but not so much for format drivers.
    
    (2) Filters need not have bs->file, so we should actually go to the
        filtered child instead of hard-coding bs->file.
    
    Fix this by splitting the default implementation into three branches:
    (1) For filter drivers: Return the size of the filtered child
    (2) For protocol drivers: Return -ENOTSUP, because the default
        implementation cannot make a guess
    (3) For other drivers: Sum all data-bearing children's sizes
    
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
Loading