From 474251b1e6a827982f42c986c00a4a8a186ee1dc Mon Sep 17 00:00:00 2001 From: Emmanuel Dreyfus Date: Sat, 6 Sep 2014 06:20:41 +0200 Subject: Do not assume sizeof(size_t) This fixes an assumption that sizeof(size_t) == sizeof(uint64_t), which is not guaranteed. At least on NetBSD/i386, size_t is 32 bit long. Caught by tests/basics/file-snapshot.t This is a backport of Ib7620a2ffe8758521886af37bc280101a040d860 BUG: 1138897 Change-Id: Ie0b80ee9ddbcccaf9fd4f5d28d80fcd080b0ed40 Signed-off-by: Emmanuel Dreyfus Reviewed-on: http://review.gluster.org/8631 Tested-by: Gluster Build System Reviewed-by: Humble Devassy Chirammal Reviewed-by: Vijay Bellur --- xlators/features/qemu-block/src/qemu-block.c | 2 +- xlators/features/qemu-block/src/qemu-block.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'xlators/features') diff --git a/xlators/features/qemu-block/src/qemu-block.c b/xlators/features/qemu-block/src/qemu-block.c index 48bbf314048..768866f6429 100644 --- a/xlators/features/qemu-block/src/qemu-block.c +++ b/xlators/features/qemu-block/src/qemu-block.c @@ -316,7 +316,7 @@ qb_setxattr_format (call_frame_t *frame, xlator_t *this, call_stub_t *stub, qb_local->stub = stub; qb_local->inode = inode_ref (inode); - snprintf(qb_local->fmt, QB_XATTR_VAL_MAX, "%s:%lu", qb_inode->fmt, + snprintf(qb_local->fmt, QB_XATTR_VAL_MAX, "%s:%" PRId64, qb_inode->fmt, qb_inode->size); qb_coroutine (frame, qb_format_and_resume); diff --git a/xlators/features/qemu-block/src/qemu-block.h b/xlators/features/qemu-block/src/qemu-block.h index c95f2799ac6..21cdcec2613 100644 --- a/xlators/features/qemu-block/src/qemu-block.h +++ b/xlators/features/qemu-block/src/qemu-block.h @@ -40,7 +40,7 @@ typedef struct qb_inode { char fmt[QB_XATTR_VAL_MAX]; /* this is only the format, not "format:size" */ - size_t size; /* virtual size in bytes */ + uint64_t size; /* virtual size in bytes */ BlockDriverState *bs; int refcnt; uuid_t backing_gfid; -- cgit