Re: [PATCH v3 1/2] nfs: fix unused variable warning when CONFIG_SUNRPC_DEBUG is disabled
From: Sean Chang
Date: Wed Feb 25 2026 - 11:35:11 EST
On Wed, Feb 25, 2026 at 1:54 AM Andrew Lunn <andrew@xxxxxxx> wrote:
> >
> > diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
> > index 9056f05a67dc..de9e8bad6af2 100644
> > --- a/fs/nfs/flexfilelayout/flexfilelayout.c
> > +++ b/fs/nfs/flexfilelayout/flexfilelayout.c
> > @@ -1502,7 +1502,7 @@ static void ff_layout_io_track_ds_error(struct pnfs_layout_segment *lseg,
> > {
> > struct nfs4_ff_layout_mirror *mirror;
> > u32 status = *op_status;
> > - int err;
> > + int err __maybe_unused;
>
> Sorry, but this is ugly. There must be a better way to fix this.
>
> Maybe look at no_printk().
>
> https://elixir.bootlin.com/linux/v6.19.3/source/drivers/video/fbdev/core/fbmon.c#L50
>
> #ifdef DEBUG
> #define DPRINTK(fmt, args...) printk(fmt,## args)
> #else
> #define DPRINTK(fmt, args...) no_printk(fmt, ##args)
> #endif
>
You are absolutely right, adding __maybe_unused to every
variable is indeed ugly and repetitive. I investigated the suggestion
of using no_printk(). It provides the same dummy-function
behavior while allowing the compiler to perform type checking
on the arguments. This effectively silences the -Wunused-variable
warnings without generating any machine code.
I propose modifying include/linux/sunrpc/debug.h to update the
stubs for dfprintk and dfprintk_rcu when CONFIG_SUNRPC_DEBUG
is disabled:
- # define dfprintk(fac, fmt, ...) do {} while (0)
- # define dfprintk_rcu(fac, fmt, ...) do {} while (0)
+ # define dfprintk(fac, fmt, ...) no_printk(fmt, ##__VA_ARGS__)
+ # define dfprintk_rcu(fac, fmt, ...) no_printk(fmt, ##__VA_ARGS__)
Best regards,
Sean