• Nathan Chancellor's avatar
    bcachefs: Fix format specifiers in bch2_btree_key_cache_to_text() · 8bb0eddb
    Nathan Chancellor authored
    When building for a 32-bit target, for which 'size_t' is 'unsigned int',
    there are two warnings around mismatched format specifiers and argument
    types:
    
      In file included from fs/bcachefs/vstructs.h:5,
                       from fs/bcachefs/bcachefs_format.h:79,
                       from fs/bcachefs/bcachefs.h:207,
                       from fs/bcachefs/btree_key_cache.c:3:
      fs/bcachefs/btree_key_cache.c: In function 'bch2_btree_key_cache_to_text':
      fs/bcachefs/btree_key_cache.c:1046:25: error: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t' {aka 'unsigned int'} [-Werror=format=]
       1046 |         prt_printf(out, "nonpcpu freelist:\t%lu\r\n",   bc->nr_freed_nonpcpu);
            |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~
            |                                                           |
            |                                                           size_t {aka unsigned int}
      fs/bcachefs/util.h:192:63: note: in definition of macro 'prt_printf'
        192 | #define prt_printf(_out, ...)           bch2_prt_printf(_out, __VA_ARGS__)
            |                                                               ^~~~~~~~~~~
      fs/bcachefs/btree_key_cache.c:1046:47: note: format string is defined here
       1046 |         prt_printf(out, "nonpcpu freelist:\t%lu\r\n",   bc->nr_freed_nonpcpu);
            |                                             ~~^
            |                                               |
            |                                               long unsigned int
            |                                             %u
      fs/bcachefs/btree_key_cache.c:1047:25: error: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t' {aka 'unsigned int'} [-Werror=format=]
       1047 |         prt_printf(out, "pcpu freelist:\t%lu\r\n",      bc->nr_freed_pcpu);
            |                         ^~~~~~~~~~~~~~~~~~~~~~~~~       ~~~~~~~~~~~~~~~~~
            |                                                           |
            |                                                           size_t {aka unsigned int}
      fs/bcachefs/util.h:192:63: note: in definition of macro 'prt_printf'
        192 | #define prt_printf(_out, ...)           bch2_prt_printf(_out, __VA_ARGS__)
            |                                                               ^~~~~~~~~~~
      fs/bcachefs/btree_key_cache.c:1047:44: note: format string is defined here
       1047 |         prt_printf(out, "pcpu freelist:\t%lu\r\n",      bc->nr_freed_pcpu);
            |                                          ~~^
            |                                            |
            |                                            long unsigned int
            |                                          %u
      cc1: all warnings being treated as error
    
    Use the proper 'size_t' specifier, '%zu', to clear up the warnings for
    these platforms.
    
    Fixes: f2d47ec26af5 ("bcachefs: Btree key cache instrumentation")
    Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    8bb0eddb
btree_key_cache.c 27.5 KB