diff options
author | Hu Tao <hutao@cn.fujitsu.com> | 2014-09-10 17:05:45 +0800 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2014-09-12 15:43:06 +0200 |
commit | c2eb918e3299f930fd0d0ae48d002cf2599de250 (patch) | |
tree | dd8c566df51931eb5853c1e578d4ee28fa3df958 /block/vpc.c | |
parent | be2bfb9dbde59de27684623b9d8261262c5ad076 (diff) | |
download | qemu-c2eb918e3299f930fd0d0ae48d002cf2599de250.zip qemu-c2eb918e3299f930fd0d0ae48d002cf2599de250.tar.gz qemu-c2eb918e3299f930fd0d0ae48d002cf2599de250.tar.bz2 |
block: round up file size to nearest sector
Currently the file size requested by user is rounded down to nearest
sector, causing the actual file size could be a bit less than the size
user requested. Since some formats (like qcow2) record virtual disk
size in bytes, this can make the last few bytes cannot be accessed.
This patch fixes it by rounding up file size to nearest sector so that
the actual file size is no less than the requested file size.
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/vpc.c')
-rw-r--r-- | block/vpc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/block/vpc.c b/block/vpc.c index c024b4c..4947369 100644 --- a/block/vpc.c +++ b/block/vpc.c @@ -757,7 +757,8 @@ static int vpc_create(const char *filename, QemuOpts *opts, Error **errp) BlockDriverState *bs = NULL; /* Read out options */ - total_size = qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0); + total_size = ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0), + BDRV_SECTOR_SIZE); disk_type_param = qemu_opt_get_del(opts, BLOCK_OPT_SUBFMT); if (disk_type_param) { if (!strcmp(disk_type_param, "dynamic")) { |