On 21.02.2017 15:58, Kevin Wolf wrote:
> blk_new_open() is a convenience function that processes flags rather
> than QDict options as a simple way to just open an image file.
> 
> In order to keep it convenient in the future, it must automatically
> request the necessary permissions. This can easily be inferred from the
> flags for read and write, but we need another flag that tells us whether
> to get the resize permission.
> 
> We can't just always request it because that means that no block jobs
> can run on the resulting BlockBackend (which is something that e.g.
> qemu-img commit wants to do), but we also can't request it never because
> most of the .bdrv_create() implementations call blk_truncate().
> 
> The solution is to introduce another flag that is passed by all users
> that want to resize the image.
> 
> Signed-off-by: Kevin Wolf <[email protected]>
> ---
>  block/parallels.c     | 3 ++-
>  block/qcow.c          | 3 ++-
>  block/qcow2.c         | 3 ++-
>  block/qed.c           | 3 ++-
>  block/vdi.c           | 3 ++-
>  block/vhdx.c          | 3 ++-
>  block/vmdk.c          | 6 ++++--
>  block/vpc.c           | 3 ++-
>  include/block/block.h | 1 +
>  qemu-img.c            | 2 +-
>  10 files changed, 20 insertions(+), 10 deletions(-)

Shouldn't writes beyond EOF with allow_write_beyond_eof count as a
resize, too? Then there would be one more place in qcow2.c and one in
sheepdog.c which require BDRV_O_RESIZE.

Max

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to