On Thu, Dec 19, 2013 at 10:27:41AM +0800, Hu Tao wrote:
> -static int preallocate(BlockDriverState *bs)
> +static int preallocate(BlockDriverState *bs, enum prealloc_mode mode)
>  {
>      uint64_t nb_sectors;
>      uint64_t offset;
> @@ -1395,9 +1395,19 @@ static int preallocate(BlockDriverState *bs)
>      int ret;
>      QCowL2Meta *meta;
>  
> +    assert(mode != PREALLOC_OFF);
> +
>      nb_sectors = bdrv_getlength(bs) >> 9;
>      offset = 0;
>  
> +    if (mode == PREALLOC_FULL) {
> +        ret = bdrv_preallocate(bs->file, 0, bdrv_getlength(bs));

This doesn't make sense since it fails to factor in qcow2 metadata and
the file layout.

Reply via email to