On Thu, Aug 29, 2024 at 04:46:41AM +0100, Matthew Wilcox wrote: > On Tue, Aug 27, 2024 at 04:15:05PM -0700, Nathan Chancellor wrote: > > When building for a 32-bit architecture, where 'size_t' is 'unsigned > > int', there is a warning due to use of '%ld', the specifier for a 'long > > int': > > > > In file included from fs/xfs/xfs_linux.h:82, > > from fs/xfs/xfs.h:26, > > from fs/xfs/xfs_super.c:7: > > fs/xfs/xfs_super.c: In function 'xfs_fs_fill_super': > > fs/xfs/xfs_super.c:1654:1: error: format '%ld' expects argument of type 'long int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Werror=format=] > > 1654 | "block size (%u bytes) not supported; Only block size (%ld) or less is supported", > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > 1655 | mp->m_sb.sb_blocksize, max_folio_size); > > | ~~~~~~~~~~~~~~ > > | | > > | size_t {aka unsigned int} > > ... > > fs/xfs/xfs_super.c:1654:58: note: format string is defined here > > 1654 | "block size (%u bytes) not supported; Only block size (%ld) or less is supported", > > | ~~^ > > | | > > | long int > > | %d > > Do we really need the incredibly verbose compiler warning messages? > Can't we just say "this is the wrong format specifier on 32 bit" > and be done with it? Clearly you haven't f*cked up^W^Wforgotten a comma in an xfs tracepoint in a while, those will generate 60 pages of helpful diagnostics. --D > > Use the proper 'size_t' specifier, '%zu', to resolve the warning. > > > > Fixes: 0ab3ca31b012 ("xfs: enable block size larger than page size support") > > Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> > > --- > > fs/xfs/xfs_super.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c > > index 242271298a33..e8cc7900911e 100644 > > --- a/fs/xfs/xfs_super.c > > +++ b/fs/xfs/xfs_super.c > > @@ -1651,7 +1651,7 @@ xfs_fs_fill_super( > > > > if (mp->m_sb.sb_blocksize > max_folio_size) { > > xfs_warn(mp, > > -"block size (%u bytes) not supported; Only block size (%ld) or less is supported", > > +"block size (%u bytes) not supported; Only block size (%zu) or less is supported", > > mp->m_sb.sb_blocksize, max_folio_size); > > error = -ENOSYS; > > goto out_free_sb; > > > > --- > > base-commit: f143d1a48d6ecce12f5bced0d18a10a0294726b5 > > change-id: 20240827-xfs-fix-wformat-bs-gt-ps-967f3aa1c142 > > > > Best regards, > > -- > > Nathan Chancellor <nathan@xxxxxxxxxx> > > > > >