Re: [PATCH] xfs: Fix format specifier for max_folio_size in xfs_fs_fill_super()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>
> > 
> > 
> 




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux