diff options
author | Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> | 2011-01-14 22:44:33 +0000 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2011-01-24 16:41:50 +0100 |
commit | c743849bee7333c7ef256b7e12e34ed6f907064f (patch) | |
tree | 1589e05d6532aac2679c9b84fd6adb97c767ef94 /block | |
parent | e61846908efd5ea0916d157a82adabf0674a01b0 (diff) |
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>
Diffstat (limited to 'block')
-rw-r--r-- | block/qed.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/block/qed.c b/block/qed.c index 085c4f2210..a46f9ef419 100644 --- a/block/qed.c +++ b/block/qed.c @@ -469,6 +469,12 @@ static int qed_create(const char *filename, uint32_t cluster_size, 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) { header.features |= QED_F_BACKING_FILE; header.backing_filename_offset = sizeof(le_header); |