]> git.proxmox.com Git - mirror_qemu.git/commit - block/file-posix.c
raw-posix: Fix .bdrv_co_get_block_status() for unaligned image size
authorKevin Wolf <kwolf@redhat.com>
Tue, 9 Jun 2015 08:55:08 +0000 (10:55 +0200)
committerStefan Hajnoczi <stefanha@redhat.com>
Fri, 12 Jun 2015 12:58:33 +0000 (13:58 +0100)
commitf4a769abaa51badea666093077c50c568c35de17
tree2d901529fbb4e8892ca619e374ad984648d2177b
parentda5e1de95bb235330d7724316e7a29239d1359d5
raw-posix: Fix .bdrv_co_get_block_status() for unaligned image size

Image files with an unaligned image size have a final hole that starts
at EOF, i.e. in the middle of a sector. Currently, *pnum == 0 is
returned when checking the status of this sector. In qemu-img, this
triggers an assertion failure.

In order to fix this, one type for the sector that contains EOF must be
found. Treating a hole as data is safe, so this patch rounds the
calculated number of data sectors up, so that a partial sector at EOF is
treated as a full data sector.

This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1229394

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-id: 1433840108-9996-1-git-send-email-kwolf@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
block/raw-posix.c