[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v14 2/5] block: don't convert file size to secto
From: |
Benoît Canet |
Subject: |
Re: [Qemu-devel] [PATCH v14 2/5] block: don't convert file size to sector size |
Date: |
Tue, 9 Sep 2014 14:26:00 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
The Tuesday 09 Sep 2014 à 11:54:28 (+0800), Hu Tao wrote :
> and avoid converting it back later.
>
> Signed-off-by: Hu Tao <address@hidden>
> Reviewed-by: Max Reitz <address@hidden>
> ---
> block/gluster.c | 9 ++++-----
> block/qcow.c | 8 ++++----
> block/qcow2.c | 10 +++++-----
> block/raw-posix.c | 12 ++++++------
> block/raw-win32.c | 6 +++---
> 5 files changed, 22 insertions(+), 23 deletions(-)
>
> diff --git a/block/gluster.c b/block/gluster.c
> index 65c7a58..1eb3a8c 100644
> --- a/block/gluster.c
> +++ b/block/gluster.c
> @@ -494,8 +494,8 @@ static int qemu_gluster_create(const char *filename,
> goto out;
> }
>
> - total_size = DIV_ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> - BDRV_SECTOR_SIZE);
> + total_size = ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> + BDRV_SECTOR_SIZE);
>
> tmp = qemu_opt_get_del(opts, BLOCK_OPT_PREALLOC);
> if (!tmp || !strcmp(tmp, "off")) {
> @@ -516,9 +516,8 @@ static int qemu_gluster_create(const char *filename,
> if (!fd) {
> ret = -errno;
> } else {
> - if (!glfs_ftruncate(fd, total_size * BDRV_SECTOR_SIZE)) {
> - if (prealloc && qemu_gluster_zerofill(fd, 0,
> - total_size * BDRV_SECTOR_SIZE)) {
> + if (!glfs_ftruncate(fd, total_size)) {
> + if (prealloc && qemu_gluster_zerofill(fd, 0, total_size)) {
> ret = -errno;
> }
> } else {
> diff --git a/block/qcow.c b/block/qcow.c
> index 041af26..a87bd69 100644
> --- a/block/qcow.c
> +++ b/block/qcow.c
> @@ -725,8 +725,8 @@ static int qcow_create(const char *filename, QemuOpts
> *opts, Error **errp)
> BlockDriverState *qcow_bs;
>
> /* Read out options */
> - total_size = DIV_ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> - BDRV_SECTOR_SIZE);
> + total_size = ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> + BDRV_SECTOR_SIZE);
> backing_file = qemu_opt_get_del(opts, BLOCK_OPT_BACKING_FILE);
> if (qemu_opt_get_bool_del(opts, BLOCK_OPT_ENCRYPT, false)) {
> flags |= BLOCK_FLAG_ENCRYPT;
> @@ -754,7 +754,7 @@ static int qcow_create(const char *filename, QemuOpts
> *opts, Error **errp)
> memset(&header, 0, sizeof(header));
> header.magic = cpu_to_be32(QCOW_MAGIC);
> header.version = cpu_to_be32(QCOW_VERSION);
> - header.size = cpu_to_be64(total_size * 512);
> + header.size = cpu_to_be64(total_size);
> header_size = sizeof(header);
> backing_filename_len = 0;
> if (backing_file) {
> @@ -776,7 +776,7 @@ static int qcow_create(const char *filename, QemuOpts
> *opts, Error **errp)
> }
> header_size = (header_size + 7) & ~7;
> shift = header.cluster_bits + header.l2_bits;
> - l1_size = ((total_size * 512) + (1LL << shift) - 1) >> shift;
> + l1_size = (total_size + (1LL << shift) - 1) >> shift;
>
> header.l1_table_offset = cpu_to_be64(header_size);
> if (flags & BLOCK_FLAG_ENCRYPT) {
> diff --git a/block/qcow2.c b/block/qcow2.c
> index c8050e5..cf27c3f 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -1859,7 +1859,7 @@ static int qcow2_create2(const char *filename, int64_t
> total_size,
> }
>
> /* Okay, now that we have a valid image, let's give it the right size */
> - ret = bdrv_truncate(bs, total_size * BDRV_SECTOR_SIZE);
> + ret = bdrv_truncate(bs, total_size);
> if (ret < 0) {
> error_setg_errno(errp, -ret, "Could not resize image");
> goto out;
> @@ -1912,7 +1912,7 @@ static int qcow2_create(const char *filename, QemuOpts
> *opts, Error **errp)
> char *backing_file = NULL;
> char *backing_fmt = NULL;
> char *buf = NULL;
> - uint64_t sectors = 0;
> + uint64_t size = 0;
> int flags = 0;
> size_t cluster_size = DEFAULT_CLUSTER_SIZE;
> int prealloc = 0;
> @@ -1921,8 +1921,8 @@ static int qcow2_create(const char *filename, QemuOpts
> *opts, Error **errp)
> int ret;
>
> /* Read out options */
> - sectors = DIV_ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> - BDRV_SECTOR_SIZE);
> + size = ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> + BDRV_SECTOR_SIZE);
> backing_file = qemu_opt_get_del(opts, BLOCK_OPT_BACKING_FILE);
> backing_fmt = qemu_opt_get_del(opts, BLOCK_OPT_BACKING_FMT);
> if (qemu_opt_get_bool_del(opts, BLOCK_OPT_ENCRYPT, false)) {
> @@ -1972,7 +1972,7 @@ static int qcow2_create(const char *filename, QemuOpts
> *opts, Error **errp)
> goto finish;
> }
>
> - ret = qcow2_create2(filename, sectors, backing_file, backing_fmt, flags,
> + ret = qcow2_create2(filename, size, backing_file, backing_fmt, flags,
> cluster_size, prealloc, opts, version, &local_err);
> if (local_err) {
> error_propagate(errp, local_err);
> diff --git a/block/raw-posix.c b/block/raw-posix.c
> index 9c22e3f..7208c05 100644
> --- a/block/raw-posix.c
> +++ b/block/raw-posix.c
> @@ -1369,8 +1369,8 @@ static int raw_create(const char *filename, QemuOpts
> *opts, Error **errp)
> strstart(filename, "file:", &filename);
>
> /* Read out options */
> - total_size = DIV_ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> - BDRV_SECTOR_SIZE);
> + total_size = ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> + BDRV_SECTOR_SIZE);
> nocow = qemu_opt_get_bool(opts, BLOCK_OPT_NOCOW, false);
>
> fd = qemu_open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY,
> @@ -1394,7 +1394,7 @@ static int raw_create(const char *filename, QemuOpts
> *opts, Error **errp)
> #endif
> }
>
> - if (ftruncate(fd, total_size * BDRV_SECTOR_SIZE) != 0) {
> + if (ftruncate(fd, total_size) != 0) {
> result = -errno;
> error_setg_errno(errp, -result, "Could not resize file");
> }
> @@ -1966,8 +1966,8 @@ static int hdev_create(const char *filename, QemuOpts
> *opts,
> (void)has_prefix;
>
> /* Read out options */
> - total_size = DIV_ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> - BDRV_SECTOR_SIZE);
> + total_size = ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> + BDRV_SECTOR_SIZE);
>
> fd = qemu_open(filename, O_WRONLY | O_BINARY);
> if (fd < 0) {
> @@ -1983,7 +1983,7 @@ static int hdev_create(const char *filename, QemuOpts
> *opts,
> error_setg(errp,
> "The given file is neither a block nor a character
> device");
> ret = -ENODEV;
> - } else if (lseek(fd, 0, SEEK_END) < total_size * BDRV_SECTOR_SIZE) {
> + } else if (lseek(fd, 0, SEEK_END) < total_size) {
> error_setg(errp, "Device is too small");
> ret = -ENOSPC;
> }
> diff --git a/block/raw-win32.c b/block/raw-win32.c
> index 1e1880d..9bf8225 100644
> --- a/block/raw-win32.c
> +++ b/block/raw-win32.c
> @@ -511,8 +511,8 @@ static int raw_create(const char *filename, QemuOpts
> *opts, Error **errp)
> strstart(filename, "file:", &filename);
>
> /* Read out options */
> - total_size = DIV_ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> - BDRV_SECTOR_SIZE);
> + total_size = ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0),
> + BDRV_SECTOR_SIZE);
>
> fd = qemu_open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY,
> 0644);
> @@ -521,7 +521,7 @@ static int raw_create(const char *filename, QemuOpts
> *opts, Error **errp)
> return -EIO;
> }
> set_sparse(fd);
> - ftruncate(fd, total_size * 512);
> + ftruncate(fd, total_size);
> qemu_close(fd);
> return 0;
> }
> --
> 1.9.3
>
>
Reviewed-by: Benoît Canet <address@hidden>
- [Qemu-devel] [PATCH v14 0/5] qcow2, raw: add preallocation=full and preallocation=falloc, Hu Tao, 2014/09/08
- [Qemu-devel] [PATCH v14 1/5] block: round up file size to nearest sector, Hu Tao, 2014/09/08
- [Qemu-devel] [PATCH v14 2/5] block: don't convert file size to sector size, Hu Tao, 2014/09/08
- Re: [Qemu-devel] [PATCH v14 2/5] block: don't convert file size to sector size,
Benoît Canet <=
- [Qemu-devel] [PATCH v14 3/5] qapi: introduce PreallocMode and new PreallocModes full and falloc., Hu Tao, 2014/09/08
- [Qemu-devel] [PATCH v14 4/5] raw-posix: Add falloc and full preallocation option, Hu Tao, 2014/09/08
- [Qemu-devel] [PATCH v14 5/5] qcow2: Add falloc and full preallocation option, Hu Tao, 2014/09/08