qed: Refuse to create images on block devices

QED relies on the underlying filesystem to extend the file and maintain
its size.  Check that images are not created on a block device.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2011-01-14 22:44:33 +00:00 committed by Kevin Wolf
parent e61846908e
commit c743849bee

View File

@ -469,6 +469,12 @@ static int qed_create(const char *filename, uint32_t cluster_size,
return ret; return ret;
} }
/* File must start empty and grow, check truncate is supported */
ret = bdrv_truncate(bs, 0);
if (ret < 0) {
goto out;
}
if (backing_file) { if (backing_file) {
header.features |= QED_F_BACKING_FILE; header.features |= QED_F_BACKING_FILE;
header.backing_filename_offset = sizeof(le_header); header.backing_filename_offset = sizeof(le_header);