qemu-img: Fix convert -n -B for backing-less targets
s.target_has_backing does not reflect whether the target BDS has a backing file; it only tells whether we should use a backing file during conversion (specified by -B). As such, if you use convert -n, the target does not necessarily actually have a backing file, and then dereferencing out_bs->backing fails here. When converting to an existing file, we should set target_backing_sectors to a negative value, because first, as the comment explains, this value is only used for optimization, so it is always fine to do that. Second, we use this value to determine where the target must be initialized to zeroes (overlays are initialized to zero after the end of their backing file). When converting to an existing file, we cannot assume that to be true. Cc: qemu-stable@nongnu.org Fixes: 351c8eff ("qemu-img: Special post-backing convert handling") Signed-off-by: NMax Reitz <mreitz@redhat.com> Message-Id: <20200121155915.98232-2-mreitz@redhat.com> Reviewed-by: NJohn Snow <jsnow@redhat.com> Signed-off-by: NMax Reitz <mreitz@redhat.com>
Showing
想要评论请 注册 或 登录