From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Eric Sandeen <sandeen@redhat.com>
Cc: xfs <linux-xfs@vger.kernel.org>
Subject: [PATCH] xfsprogs: explicitly cast troublesome types to match printf format specifiers
Date: Tue, 3 Oct 2017 12:20:17 -0700 [thread overview]
Message-ID: <20171003192017.GE6503@magnolia> (raw)
Certain system-defined types (__u64, __s64, __nlink_t, __ino64_t,
__off64_t, __blkcnt64_t) don't have a consistent definition across
different architectures, so wherever we use a printf format specifier on
such a variable, we have to typecast the variable or else the compiler
will complain.
IOWs this fixes build warnings on ppc64le.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
io/fiemap.c | 37 +++++++++++++++++++++----------------
io/open.c | 4 ++--
io/stat.c | 26 +++++++++++++-------------
repair/attr_repair.c | 6 ++++--
repair/dinode.c | 3 ++-
repair/phase6.c | 4 ++--
repair/scan.c | 15 ++++++++++-----
7 files changed, 54 insertions(+), 41 deletions(-)
diff --git a/io/fiemap.c b/io/fiemap.c
index e6fd66d..bdcfacd 100644
--- a/io/fiemap.c
+++ b/io/fiemap.c
@@ -67,16 +67,18 @@ print_hole(
if (plain) {
printf("\t%d: [%llu..%llu]: hole", cur_extent,
- llast, lstart - 1ULL);
+ (unsigned long long)llast, lstart - 1ULL);
if (lflag)
- printf(_(" %llu blocks\n"), lstart - llast);
+ printf(_(" %llu blocks\n"),
+ (unsigned long long)lstart - llast);
else
printf("\n");
} else {
- snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]:", llast,
- lstart - 1ULL);
+ snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]:",
+ (unsigned long long)llast, lstart - 1ULL);
printf("%4d: %-*s %-*s %*llu\n", cur_extent, foff_w, lbuf,
- boff_w, _("hole"), tot_w, lstart - llast);
+ boff_w, _("hole"), tot_w,
+ (unsigned long long)lstart - llast);
}
@@ -125,12 +127,13 @@ print_verbose(
if (cur_extent == max_extents)
return 1;
- snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]:", lstart,
- lstart + len - 1ULL);
- snprintf(bbuf, sizeof(bbuf), "%llu..%llu", block, block + len - 1ULL);
+ snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]:",
+ (unsigned long long)lstart, lstart + len - 1ULL);
+ snprintf(bbuf, sizeof(bbuf), "%llu..%llu",
+ (unsigned long long)block, block + len - 1ULL);
snprintf(flgbuf, sizeof(flgbuf), "0x%x", extent->fe_flags);
printf("%4d: %-*s %-*s %*llu %*s\n", cur_extent, foff_w, lbuf,
- boff_w, bbuf, tot_w, len, flg_w, flgbuf);
+ boff_w, bbuf, tot_w, (unsigned long long)len, flg_w, flgbuf);
return 2;
}
@@ -161,11 +164,11 @@ print_plain(
return 1;
printf("\t%d: [%llu..%llu]: %llu..%llu", cur_extent,
- lstart, lstart + len - 1ULL, block,
- block + len - 1ULL);
+ (unsigned long long)lstart, lstart + len - 1ULL,
+ (unsigned long long)block, block + len - 1ULL);
if (lflag)
- printf(_(" %llu blocks\n"), len);
+ printf(_(" %llu blocks\n"), (unsigned long long)len);
else
printf("\n");
return 2;
@@ -198,10 +201,12 @@ calc_print_format(
len = BTOBBT(extent->fe_length);
block = BTOBBT(extent->fe_physical);
- snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]", logical,
- logical + len - 1);
- snprintf(bbuf, sizeof(bbuf), "%llu..%llu", block,
- block + len - 1);
+ snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]",
+ (unsigned long long)logical,
+ (unsigned long long)logical + len - 1);
+ snprintf(bbuf, sizeof(bbuf), "%llu..%llu",
+ (unsigned long long)block,
+ (unsigned long long)block + len - 1);
*foff_w = max(*foff_w, strlen(lbuf));
*boff_w = max(*boff_w, strlen(bbuf));
*tot_w = max(*tot_w, numlen(len, 10));
diff --git a/io/open.c b/io/open.c
index f2ea7c3..2cce045 100644
--- a/io/open.c
+++ b/io/open.c
@@ -762,14 +762,14 @@ inode_f(
if (verbose && result_ino) {
/* Requested verbose and we have an answer */
- printf("%llu:%d\n", result_ino,
+ printf("%llu:%d\n", (unsigned long long)result_ino,
result_ino > XFS_MAXINUMBER_32 ? 64 : 32);
} else if (userino == NULLFSINO) {
/* Just checking 32 or 64 bit presence, non-verbose */
printf("%d\n", result_ino > XFS_MAXINUMBER_32 ? 1 : 0);
} else {
/* We asked about a specific inode, non-verbose */
- printf("%llu\n", result_ino);
+ printf("%llu\n", (unsigned long long)result_ino);
}
return 0;
diff --git a/io/stat.c b/io/stat.c
index 060ff83..b97cced 100644
--- a/io/stat.c
+++ b/io/stat.c
@@ -69,14 +69,14 @@ filetype(mode_t mode)
static int
dump_raw_stat(struct stat *st)
{
- printf("stat.blksize = %lu\n", st->st_blksize);
- printf("stat.nlink = %lu\n", st->st_nlink);
+ printf("stat.blksize = %lu\n", (unsigned long)st->st_blksize);
+ printf("stat.nlink = %lu\n", (unsigned long)st->st_nlink);
printf("stat.uid = %u\n", st->st_uid);
printf("stat.gid = %u\n", st->st_gid);
printf("stat.mode: 0%o\n", st->st_mode);
- printf("stat.ino = %lu\n", st->st_ino);
- printf("stat.size = %lu\n", st->st_size);
- printf("stat.blocks = %lu\n", st->st_blocks);
+ printf("stat.ino = %llu\n", (unsigned long long)st->st_ino);
+ printf("stat.size = %lld\n", (long long)st->st_size);
+ printf("stat.blocks = %lld\n", (long long)st->st_blocks);
printf("stat.atime.tv_sec = %ld\n", st->st_atim.tv_sec);
printf("stat.atime.tv_nsec = %ld\n", st->st_atim.tv_nsec);
printf("stat.ctime.tv_sec = %ld\n", st->st_ctim.tv_sec);
@@ -273,21 +273,21 @@ dump_raw_statx(struct statx *stx)
{
printf("stat.mask = 0x%x\n", stx->stx_mask);
printf("stat.blksize = %u\n", stx->stx_blksize);
- printf("stat.attributes = 0x%llx\n", stx->stx_attributes);
+ printf("stat.attributes = 0x%llx\n", (unsigned long long)stx->stx_attributes);
printf("stat.nlink = %u\n", stx->stx_nlink);
printf("stat.uid = %u\n", stx->stx_uid);
printf("stat.gid = %u\n", stx->stx_gid);
printf("stat.mode: 0%o\n", stx->stx_mode);
- printf("stat.ino = %llu\n", stx->stx_ino);
- printf("stat.size = %llu\n", stx->stx_size);
- printf("stat.blocks = %llu\n", stx->stx_blocks);
- printf("stat.atime.tv_sec = %lld\n", stx->stx_atime.tv_sec);
+ printf("stat.ino = %llu\n", (unsigned long long)stx->stx_ino);
+ printf("stat.size = %llu\n", (unsigned long long)stx->stx_size);
+ printf("stat.blocks = %llu\n", (unsigned long long)stx->stx_blocks);
+ printf("stat.atime.tv_sec = %lld\n", (long long)stx->stx_atime.tv_sec);
printf("stat.atime.tv_nsec = %d\n", stx->stx_atime.tv_nsec);
- printf("stat.btime.tv_sec = %lld\n", stx->stx_btime.tv_sec);
+ printf("stat.btime.tv_sec = %lld\n", (long long)stx->stx_btime.tv_sec);
printf("stat.btime.tv_nsec = %d\n", stx->stx_btime.tv_nsec);
- printf("stat.ctime.tv_sec = %lld\n", stx->stx_ctime.tv_sec);
+ printf("stat.ctime.tv_sec = %lld\n", (long long)stx->stx_ctime.tv_sec);
printf("stat.ctime.tv_nsec = %d\n", stx->stx_ctime.tv_nsec);
- printf("stat.mtime.tv_sec = %lld\n", stx->stx_mtime.tv_sec);
+ printf("stat.mtime.tv_sec = %lld\n", (long long)stx->stx_mtime.tv_sec);
printf("stat.mtime.tv_nsec = %d\n", stx->stx_mtime.tv_nsec);
printf("stat.rdev_major = %u\n", stx->stx_rdev_major);
printf("stat.rdev_minor = %u\n", stx->stx_rdev_minor);
diff --git a/repair/attr_repair.c b/repair/attr_repair.c
index 9ec2231..8b1b8a7 100644
--- a/repair/attr_repair.c
+++ b/repair/attr_repair.c
@@ -943,14 +943,16 @@ __check_attr_header(
if (be64_to_cpu(info->owner) != ino) {
do_warn(
_("expected owner inode %" PRIu64 ", got %llu, attr block %" PRIu64 "\n"),
- ino, be64_to_cpu(info->owner), bp->b_bn);
+ ino, (unsigned long long)be64_to_cpu(info->owner),
+ bp->b_bn);
return 1;
}
/* verify block number */
if (be64_to_cpu(info->blkno) != bp->b_bn) {
do_warn(
_("expected block %" PRIu64 ", got %llu, inode %" PRIu64 "attr block\n"),
- bp->b_bn, be64_to_cpu(info->blkno), ino);
+ bp->b_bn, (unsigned long long)be64_to_cpu(info->blkno),
+ ino);
return 1;
}
/* verify uuid */
diff --git a/repair/dinode.c b/repair/dinode.c
index b35a523..a2c632c 100644
--- a/repair/dinode.c
+++ b/repair/dinode.c
@@ -2592,7 +2592,8 @@ process_dinode_int(
if (!uncertain)
do_warn(
_("inode identifier %llu mismatch on inode %" PRIu64 "\n"),
- be64_to_cpu(dino->di_ino), lino);
+ (unsigned long long)be64_to_cpu(dino->di_ino),
+ lino);
if (verify_mode)
return 1;
goto clear_bad_out;
diff --git a/repair/phase6.c b/repair/phase6.c
index 8fdf8e5..54944a9 100644
--- a/repair/phase6.c
+++ b/repair/phase6.c
@@ -1964,14 +1964,14 @@ __check_dir3_header(
if (be64_to_cpu(owner) != ino) {
do_warn(
_("expected owner inode %" PRIu64 ", got %llu, directory block %" PRIu64 "\n"),
- ino, be64_to_cpu(owner), bp->b_bn);
+ ino, (unsigned long long)be64_to_cpu(owner), bp->b_bn);
return 1;
}
/* verify block number */
if (be64_to_cpu(blkno) != bp->b_bn) {
do_warn(
_("expected block %" PRIu64 ", got %llu, directory inode %" PRIu64 "\n"),
- bp->b_bn, be64_to_cpu(blkno), ino);
+ bp->b_bn, (unsigned long long)be64_to_cpu(blkno), ino);
return 1;
}
/* verify uuid */
diff --git a/repair/scan.c b/repair/scan.c
index ccf60a6..b3ba3ef 100644
--- a/repair/scan.c
+++ b/repair/scan.c
@@ -230,7 +230,9 @@ _("expected level %d got %d in inode %" PRIu64 ", (%s fork) bmbt block %" PRIu64
if (be64_to_cpu(block->bb_u.l.bb_owner) != ino) {
do_warn(
_("expected owner inode %" PRIu64 ", got %llu, bmbt block %" PRIu64 "\n"),
- ino, be64_to_cpu(block->bb_u.l.bb_owner), bno);
+ ino,
+ (unsigned long long)be64_to_cpu(block->bb_u.l.bb_owner),
+ bno);
return 1;
}
/* verify block number */
@@ -239,7 +241,8 @@ _("expected owner inode %" PRIu64 ", got %llu, bmbt block %" PRIu64 "\n"),
do_warn(
_("expected block %" PRIu64 ", got %llu, bmbt block %" PRIu64 "\n"),
XFS_FSB_TO_DADDR(mp, bno),
- be64_to_cpu(block->bb_u.l.bb_blkno), bno);
+ (unsigned long long)be64_to_cpu(block->bb_u.l.bb_blkno),
+ bno);
return 1;
}
/* verify uuid */
@@ -1389,7 +1392,8 @@ _("expected level %d got %d in inode %" PRIu64 ", %s block %" PRIu64 "\n"),
if (be64_to_cpu(block->bb_u.l.bb_owner) != ino) {
do_warn(
_("expected owner inode %" PRIu64 ", got %llu, %s block %" PRIu64 "\n"),
- ino, be64_to_cpu(block->bb_u.l.bb_owner), name, fsbno);
+ ino, (unsigned long long)be64_to_cpu(block->bb_u.l.bb_owner),
+ name, fsbno);
return 1;
}
/* verify block number */
@@ -1398,7 +1402,8 @@ _("expected owner inode %" PRIu64 ", got %llu, %s block %" PRIu64 "\n"),
do_warn(
_("expected block %" PRIu64 ", got %llu, %s block %" PRIu64 "\n"),
XFS_FSB_TO_DADDR(mp, fsbno),
- be64_to_cpu(block->bb_u.l.bb_blkno), name, fsbno);
+ (unsigned long long)be64_to_cpu(block->bb_u.l.bb_blkno),
+ name, fsbno);
return 1;
}
/* verify uuid */
@@ -1965,7 +1970,7 @@ import_single_ino_chunk(
_("ir_holemask/ir_free mismatch, %s chunk %d/%u, holemask 0x%x free 0x%llx\n"),
inobt_name, agno, ino,
be16_to_cpu(rp->ir_u.sp.ir_holemask),
- be64_to_cpu(rp->ir_free));
+ (unsigned long long)be64_to_cpu(rp->ir_free));
suspect++;
}
if (!suspect && ino_rec)
reply other threads:[~2017-10-03 19:20 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171003192017.GE6503@magnolia \
--to=darrick.wong@oracle.com \
--cc=linux-xfs@vger.kernel.org \
--cc=sandeen@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.