Skip to content
  • Andrey Shinkevich's avatar
    000e5a1c
    stream: rework backing-file changing · 000e5a1c
    Andrey Shinkevich authored
    
    
    Stream in stream_prepare calls bdrv_change_backing_file() to change
    backing-file in the metadata of bs.
    
    It may use either backing-file parameter given by user or just take
    filename of base on job start.
    
    Backing file format is determined by base on job finish.
    
    There are some problems with this design, we solve only two by this
    patch:
    
    1. Consider scenario with backing-file unset. Current concept of stream
    supports changing of the base during the job (we don't freeze link to
    the base). So, we should not save base filename at job start,
    
      - let's determine name of the base on job finish.
    
    2. Using direct base to determine filename and format is not very good:
    base node may be a filter, so its filename may be JSON, and format_name
    is not good for storing into qcow2 metadata as backing file format.
    
      - let's use unfiltered_base
    
    Signed-off-by: default avatarAndrey Shinkevich <andrey.shinkevich@virtuozzo.com>
    Signed-off-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      [vsementsov: change commit subject, change logic in stream_prepare]
    Message-Id: <20201216061703.70908-10-vsementsov@virtuozzo.com>
    Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    000e5a1c
    stream: rework backing-file changing
    Andrey Shinkevich authored
    
    
    Stream in stream_prepare calls bdrv_change_backing_file() to change
    backing-file in the metadata of bs.
    
    It may use either backing-file parameter given by user or just take
    filename of base on job start.
    
    Backing file format is determined by base on job finish.
    
    There are some problems with this design, we solve only two by this
    patch:
    
    1. Consider scenario with backing-file unset. Current concept of stream
    supports changing of the base during the job (we don't freeze link to
    the base). So, we should not save base filename at job start,
    
      - let's determine name of the base on job finish.
    
    2. Using direct base to determine filename and format is not very good:
    base node may be a filter, so its filename may be JSON, and format_name
    is not good for storing into qcow2 metadata as backing file format.
    
      - let's use unfiltered_base
    
    Signed-off-by: default avatarAndrey Shinkevich <andrey.shinkevich@virtuozzo.com>
    Signed-off-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      [vsementsov: change commit subject, change logic in stream_prepare]
    Message-Id: <20201216061703.70908-10-vsementsov@virtuozzo.com>
    Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
Loading