All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@sandeen.net>
To: "Darrick J. Wong" <darrick.wong@oracle.com>, sandeen@redhat.com
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 02/10] xfsprogs: explicitly cast troublesome types to match printf format specifiers
Date: Thu, 26 Oct 2017 19:06:27 -0500	[thread overview]
Message-ID: <99582b57-7045-2c39-27ac-2a1ea5e7e714@sandeen.net> (raw)
In-Reply-To: <150905610714.28563.8771464764994644220.stgit@magnolia>



On 10/26/17 5:15 PM, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
> 
> 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>

Sigh, I hate this.  ;)

Reviewed-by: Eric Sandeen <sandeen@redhat.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        |    9 ++++++---
>  7 files changed, 50 insertions(+), 39 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 15ba8cc..e7de6d4 100644
> --- a/repair/dinode.c
> +++ b/repair/dinode.c
> @@ -2330,7 +2330,8 @@ process_dinode_int(xfs_mount_t *mp,
>  			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 4279d2a..37505a8 100644
> --- a/repair/phase6.c
> +++ b/repair/phase6.c
> @@ -1917,14 +1917,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 9c0f2d6..22c7331 100644
> --- a/repair/scan.c
> +++ b/repair/scan.c
> @@ -227,7 +227,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 */
> @@ -236,7 +238,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 */
> @@ -1587,7 +1590,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)
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

  reply	other threads:[~2017-10-27  0:06 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-26 22:14 [PATCH 00/10] xfsprogs: 4.14 rollup Darrick J. Wong
2017-10-26 22:14 ` [PATCH 01/10] db: increase metadump's default overly long extent discard threshold Darrick J. Wong
2017-10-27  0:03   ` Eric Sandeen
2017-10-27  0:12     ` Darrick J. Wong
2017-10-26 22:15 ` [PATCH 02/10] xfsprogs: explicitly cast troublesome types to match printf format specifiers Darrick J. Wong
2017-10-27  0:06   ` Eric Sandeen [this message]
2017-10-26 22:15 ` [PATCH 03/10] xfs_io: add new error injection knobs to inject command Darrick J. Wong
2017-10-27  0:09   ` Eric Sandeen
2017-10-26 22:15 ` [PATCH 04/10] xfs_repair: fix bag memory overwrite problems Darrick J. Wong
2017-10-27  0:49   ` Eric Sandeen
2017-10-26 22:15 ` [PATCH 05/10] xfs_repair: clear DAX flag from non-file inodes Darrick J. Wong
2017-10-27  2:01   ` Eric Sandeen
2017-10-26 22:15 ` [PATCH 06/10] xfs_repair: fix cowextsize field checking and repairing Darrick J. Wong
2017-10-27  2:06   ` Eric Sandeen
2017-10-27 16:17     ` Darrick J. Wong
2017-10-27 16:27       ` Eric Sandeen
2017-10-26 22:15 ` [PATCH 07/10] misc: enable ubsan if it's available Darrick J. Wong
2017-10-26 22:23   ` [PATCH v2] misc: enable ubsan if the builder wants it Darrick J. Wong
2017-10-26 22:15 ` [PATCH 08/10] misc: enable gcc/clang address sanitizer Darrick J. Wong
2017-10-26 22:24   ` [PATCH v2 " Darrick J. Wong
2017-10-26 22:15 ` [PATCH 09/10] misc: enable thread Darrick J. Wong
2017-10-26 22:24   ` [PATCH v2 09/10] misc: enable thread sanitizer if requested Darrick J. Wong
2017-10-26 22:15 ` [PATCH 10/10] misc: fix ubsan warnings Darrick J. Wong
2017-10-27 13:48   ` Eric Sandeen
2017-10-27 16:14     ` Darrick J. Wong
2017-10-27 16:24       ` Eric Sandeen
2017-10-27 16:19   ` [PATCH v2 " Darrick J. Wong
2017-10-26 22:32 ` [PATCH 00/10] xfsprogs: 4.14 rollup Goldwyn Rodrigues
2017-10-27  0:01   ` Eric Sandeen

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=99582b57-7045-2c39-27ac-2a1ea5e7e714@sandeen.net \
    --to=sandeen@sandeen.net \
    --cc=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.