On Wed, Aug 21, 2024 at 01:43:03PM GMT, Nathan Chancellor wrote:
> When building for a 32-bit architecture, for which 'size_t' is
> 'unsigned int', there is a compiler warning due to use of '%lu':
>
> In file included from fs/bcachefs/vstructs.h:5,
> from fs/bcachefs/bcachefs_format.h:80,
> 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:795:25: error: format '%lu' expects argument
> of type 'long unsigned int', but argument 3 has type 'size_t' {aka 'unsigned
> int'} [-Werror=format=]
> 795 | prt_printf(out, "pending:\t%lu\r\n",
> per_cpu_sum(bc->nr_pending));
> | ^~~~~~~~~~~~~~~~~~~
> fs/bcachefs/util.h:78:63: note: in definition of macro 'prt_printf'
> 78 | #define prt_printf(_out, ...) bch2_prt_printf(_out,
> __VA_ARGS__)
> |
> ^~~~~~~~~~~
> fs/bcachefs/btree_key_cache.c:795:38: note: format string is defined here
> 795 | prt_printf(out, "pending:\t%lu\r\n",
> per_cpu_sum(bc->nr_pending));
> | ~~^
> | |
> | long unsigned int
> | %u
> cc1: all warnings being treated as errors
>
> Use the proper specifier, '%zu', to resolve the warning.
>
> Fixes: e447e49977b8 ("bcachefs: key cache can now allocate from pending")
> Signed-off-by: Nathan Chancellor <[email protected]>
Applied