diff mbox

[1/2] block/vdi: Use {DIV_,}ROUND_UP

Message ID 1413881486-24710-2-git-send-email-mreitz@redhat.com
State New
Headers show

Commit Message

Max Reitz Oct. 21, 2014, 8:51 a.m. UTC
There are macros for these operations, so make use of them.

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 block/vdi.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Eric Blake Oct. 21, 2014, 4:58 p.m. UTC | #1
On 10/21/2014 02:51 AM, Max Reitz wrote:
> There are macros for these operations, so make use of them.
> 
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
>  block/vdi.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 

> @@ -475,7 +474,7 @@ static int vdi_open(BlockDriverState *bs, QDict *options, int flags,
>      s->header = header;
>  
>      bmap_size = header.blocks_in_image * sizeof(uint32_t);
> -    bmap_size = (bmap_size + SECTOR_SIZE - 1) / SECTOR_SIZE;
> +    bmap_size = DIV_ROUND_UP(bmap_size, SECTOR_SIZE);

Is it worth consolidating these two assignments into one:

bmap_size = DIV_ROUND_UP(header.blocks_in_image * sizeof(uint32_t),
                         SECTOR_SIZE);

> @@ -736,10 +735,10 @@ static int vdi_create(const char *filename, QemuOpts *opts, Error **errp)
>  
>      /* We need enough blocks to store the given disk size,
>         so always round up. */
> -    blocks = (bytes + block_size - 1) / block_size;
> +    blocks = DIV_ROUND_UP(bytes, block_size);
>  
>      bmap_size = blocks * sizeof(uint32_t);
> -    bmap_size = ((bmap_size + SECTOR_SIZE - 1) & ~(SECTOR_SIZE -1));
> +    bmap_size = ROUND_UP(bmap_size, SECTOR_SIZE);

and again?

Either way,
Reviewed-by: Eric Blake <eblake@redhat.com>
diff mbox

Patch

diff --git a/block/vdi.c b/block/vdi.c
index 9604721..19701ee 100644
--- a/block/vdi.c
+++ b/block/vdi.c
@@ -407,8 +407,7 @@  static int vdi_open(BlockDriverState *bs, QDict *options, int flags,
            We accept them but round the disk size to the next multiple of
            SECTOR_SIZE. */
         logout("odd disk size %" PRIu64 " B, round up\n", header.disk_size);
-        header.disk_size += SECTOR_SIZE - 1;
-        header.disk_size &= ~(SECTOR_SIZE - 1);
+        header.disk_size = ROUND_UP(header.disk_size, SECTOR_SIZE);
     }
 
     if (header.signature != VDI_SIGNATURE) {
@@ -475,7 +474,7 @@  static int vdi_open(BlockDriverState *bs, QDict *options, int flags,
     s->header = header;
 
     bmap_size = header.blocks_in_image * sizeof(uint32_t);
-    bmap_size = (bmap_size + SECTOR_SIZE - 1) / SECTOR_SIZE;
+    bmap_size = DIV_ROUND_UP(bmap_size, SECTOR_SIZE);
     s->bmap = qemu_try_blockalign(bs->file, bmap_size * SECTOR_SIZE);
     if (s->bmap == NULL) {
         ret = -ENOMEM;
@@ -736,10 +735,10 @@  static int vdi_create(const char *filename, QemuOpts *opts, Error **errp)
 
     /* We need enough blocks to store the given disk size,
        so always round up. */
-    blocks = (bytes + block_size - 1) / block_size;
+    blocks = DIV_ROUND_UP(bytes, block_size);
 
     bmap_size = blocks * sizeof(uint32_t);
-    bmap_size = ((bmap_size + SECTOR_SIZE - 1) & ~(SECTOR_SIZE -1));
+    bmap_size = ROUND_UP(bmap_size, SECTOR_SIZE);
 
     memset(&header, 0, sizeof(header));
     pstrcpy(header.text, sizeof(header.text), VDI_TEXT);