• Peter Lieven's avatar
    block: change default of .has_zero_init to 0 · 3ac21627
    Peter Lieven authored
    .has_zero_init defaults to 1 for all formats and protocols.
    this is a dangerous default since this means that all
    new added drivers need to manually overwrite it to 0 if
    they do not ensure that a device is zero initialized
    after bdrv_create().
    if a driver needs to explicitly set this value to
    1 its easier to verify the correctness in the review process.
    during review of the existing drivers it turned out
    that ssh and gluster had a wrong default of 1.
    both protocols support host_devices as backend
    which are not by default zero initialized. this
    wrong assumption will lead to possible corruption
    if qemu-img convert is used to write to such a backend.
    vpc and vmdk also defaulted to 1 altough they support
    fixed respectively flat extends. this has to be addresses
    in separate patches. both formats as well as the mentioned
    ssh and gluster are turned to the default of 0 with this
    patch for safety.
    a similar problem with the wrong default existed for
    iscsi most likely because the driver developer did
    oversee the default value of 1.
    Signed-off-by: default avatarPeter Lieven <pl@kamp.de>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
block.c 126 KB