• Nathan Chancellor's avatar
    bcachefs: Fix -Wformat in bch2_set_bucket_needs_journal_commit() · fac1250a
    Nathan Chancellor authored
    When building bcachefs for 32-bit ARM, there is a compiler warning in
    bch2_set_bucket_needs_journal_commit() due to a debug print using the
    wrong specifier:
    
      fs/bcachefs/buckets_waiting_for_journal.c:137:30: error: format specifies type 'size_t' (aka 'unsigned int') but the argument has type 'unsigned long' [-Werror,-Wformat]
        136 |         pr_debug("took %zu rehashes, table at %zu/%zu elements",
            |                                                   ~~~
            |                                                   %lu
        137 |                  nr_rehashes, nr_elements, 1UL << b->t->bits);
            |                                            ^~~~~~~~~~~~~~~~~
      include/linux/printk.h:579:26: note: expanded from macro 'pr_debug'
        579 |         dynamic_pr_debug(fmt, ##__VA_ARGS__)
            |                          ~~~    ^~~~~~~~~~~
      include/linux/dynamic_debug.h:270:22: note: expanded from macro 'dynamic_pr_debug'
        270 |                            pr_fmt(fmt), ##__VA_ARGS__)
            |                                   ~~~     ^~~~~~~~~~~
      include/linux/dynamic_debug.h:250:59: note: expanded from macro '_dynamic_func_call'
        250 |         _dynamic_func_call_cls(_DPRINTK_CLASS_DFLT, fmt, func, ##__VA_ARGS__)
            |                                                                  ^~~~~~~~~~~
      include/linux/dynamic_debug.h:248:65: note: expanded from macro '_dynamic_func_call_cls'
        248 |         __dynamic_func_call_cls(__UNIQUE_ID(ddebug), cls, fmt, func, ##__VA_ARGS__)
            |                                                                        ^~~~~~~~~~~
      include/linux/dynamic_debug.h:224:15: note: expanded from macro '__dynamic_func_call_cls'
        224 |                 func(&id, ##__VA_ARGS__);                       \
            |                             ^~~~~~~~~~~
      1 error generated.
    
    On 64-bit architectures, size_t is 'unsigned long', so there is no
    warning when using %zu but on 32-bit architectures, size_t is
    'unsigned int'. Use the correct specifier to resolve the warning.
    
    Fixes: 7a82e75ddaef ("bcachefs: New data structure for buckets waiting on journal commit")
    Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    fac1250a
buckets_waiting_for_journal.c 3.73 KB