rbd: fix 32-bit build

%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>
This commit is contained in:
Eric Blake 2016-02-23 16:35:19 -07:00
parent c23bbfad6e
commit 5a5c2837c8

View 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) {