]> xenbits.xensource.com Git - libvirt.git/commitdiff
rbd: fix 32-bit build
authorEric Blake <eblake@redhat.com>
Tue, 23 Feb 2016 23:35:19 +0000 (16:35 -0700)
committerEric Blake <eblake@redhat.com>
Tue, 23 Feb 2016 23:54:35 +0000 (16:54 -0700)
%zu is not always synonymous with uint64_t; on 32-bit machines,
size_t is only 32 bits.  Prefer "%lld"/'unsigned long long' when
the variable is under our control, and "%"PRIu64 when we are
stuck with 'uint64_t' from RBD.

Fixes errors such as:

../../src/storage/storage_backend_rbd.c: In function 'virStorageBackendRBDVolWipe':
../../src/storage/storage_backend_rbd.c:1281:15: error: format '%zu' expects argument of type 'size_t', but argument 8 has type 'uint64_t {aka long long unsigned int}' [-Werror=format=]
     VIR_DEBUG("Need to wipe %zu bytes from RBD image %s/%s",
               ^
../../src/util/virlog.h:90:73: note: in definition of macro 'VIR_DEBUG_INT'
     virLogMessage(src, VIR_LOG_DEBUG, filename, linenr, funcname, NULL, __VA_ARGS__)
                                                                         ^
../../src/storage/storage_backend_rbd.c:1281:5: note: in expansion of macro 'VIR_DEBUG'
     VIR_DEBUG("Need to wipe %zu bytes from RBD image %s/%s",
     ^

Signed-off-by: Eric Blake <eblake@redhat.com>
src/storage/storage_backend_rbd.c

index 0591eecde26dfd4081549f00062ffb8a05be5c2f..7d04b39aa3dfc618c1070c8c350b2d888228bc0b 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <config.h>
 
+#include <inttypes.h>
 #include "datatypes.h"
 #include "virerror.h"
 #include "storage_backend_rbd.h"
@@ -403,7 +404,7 @@ volStorageBackendRBDRefreshVolInfo(virStorageVolDefPtr vol,
     }
 
     VIR_DEBUG("Refreshed RBD image %s/%s (capacity: %llu allocation: %llu "
-                      "obj_size: %zu num_objs: %zu)",
+                      "obj_size: %"PRIu64" num_objs: %"PRIu64")",
               pool->def->source.name, vol->name, vol->target.capacity,
               vol->target.allocation, info.obj_size, info.num_objs);
 
@@ -463,7 +464,8 @@ virStorageBackendRBDRefreshPool(virConnectPtr conn,
     pool->def->available = clusterstat.kb_avail * 1024;
     pool->def->allocation = poolstat.num_bytes;
 
-    VIR_DEBUG("Utilization of RBD pool %s: (kb: %zu kb_avail: %zu num_bytes: %zu)",
+    VIR_DEBUG("Utilization of RBD pool %s: (kb: %"PRIu64" kb_avail: %"PRIu64
+              " num_bytes: %"PRIu64")",
               pool->def->source.name, clusterstat.kb, clusterstat.kb_avail,
               poolstat.num_bytes);
 
@@ -1168,8 +1170,8 @@ virStorageBackendRBDVolWipeZero(rbd_image_t image,
 {
     int r = -1;
     int ret = -1;
-    uint64_t offset = 0;
-    uint64_t length;
+    unsigned long long offset = 0;
+    unsigned long long length;
     char *writebuf;
 
     if (VIR_ALLOC_N(writebuf, info->obj_size * stripe_count) < 0)
@@ -1179,13 +1181,13 @@ virStorageBackendRBDVolWipeZero(rbd_image_t image,
         length = MIN((info->size - offset), (info->obj_size * stripe_count));
 
         if ((r = rbd_write(image, offset, length, writebuf)) < 0) {
-            virReportSystemError(-r, _("writing %zu bytes failed on "
-                                       "RBD image %s at offset %zu"),
+            virReportSystemError(-r, _("writing %llu bytes failed on "
+                                       "RBD image %s at offset %llu"),
                                        length, imgname, offset);
             goto cleanup;
         }
 
-        VIR_DEBUG("Wrote %zu bytes to RBD image %s at offset %zu",
+        VIR_DEBUG("Wrote %llu bytes to RBD image %s at offset %llu",
                   length, imgname, offset);
 
         offset += length;
@@ -1207,8 +1209,8 @@ virStorageBackendRBDVolWipeDiscard(rbd_image_t image,
 {
     int r = -1;
     int ret = -1;
-    uint64_t offset = 0;
-    uint64_t length;
+    unsigned long long offset = 0;
+    unsigned long long length;
 
     VIR_DEBUG("Wiping RBD %s volume using discard)", imgname);
 
@@ -1216,13 +1218,13 @@ virStorageBackendRBDVolWipeDiscard(rbd_image_t image,
         length = MIN((info->size - offset), (info->obj_size * stripe_count));
 
         if ((r = rbd_discard(image, offset, length)) < 0) {
-            virReportSystemError(-r, _("discarding %zu bytes failed on "
-                                       "RBD image %s at offset %zu"),
+            virReportSystemError(-r, _("discarding %llu bytes failed on "
+                                       "RBD image %s at offset %llu"),
                                      length, imgname, offset);
             goto cleanup;
         }
 
-        VIR_DEBUG("Discarded %zu bytes of RBD image %s at offset %zu",
+        VIR_DEBUG("Discarded %llu bytes of RBD image %s at offset %llu",
                   length, imgname, offset);
 
         offset += length;
@@ -1278,7 +1280,7 @@ virStorageBackendRBDVolWipe(virConnectPtr conn,
         goto cleanup;
     }
 
-    VIR_DEBUG("Need to wipe %zu bytes from RBD image %s/%s",
+    VIR_DEBUG("Need to wipe %"PRIu64" bytes from RBD image %s/%s",
               info.size, pool->def->source.name, vol->name);
 
     switch ((virStorageVolWipeAlgorithm) algorithm) {