Re: [PATCH v1 1/1] nfsd: Mark variable __maybe_unused to avoid W=1 build break

Chuck Lever
2025-11-13T13:56:16Z

On 11/13/25 3:31 AM, Andy Shevchenko wrote:
> Clang is not happy about set but (in some cases) unused variable:
>
> fs/nfsd/export.c:1027:17: error: variable 'inode' set but not used [-Werror,-Wunused-but-set-variable]
>
> since it's used as a parameter to dprintk() which might be configured
> a no-op. To avoid uglifying code with the specific ifdeffery just mark
> the variable __maybe_unused.
>
> The commit [1], which introduced this behaviour, is quite old and hence
> the Fixes tag points to the first of Git era.
>
> Link: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=0431923fb7a1 [1]
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> fs/nfsd/export.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> index 9d55512d0cc9..2a1499f2ad19 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -1024,7 +1024,7 @@ exp_rootfh(struct net *net, struct auth_domain *clp, char *name,
> {
> struct svc_export *exp;
> struct path path;
> - struct inode *inode;
> + struct inode *inode __maybe_unused;

We typically use "#ifdef CONFIG_SUNRPC_DEBUG" instead for this purpose.
I don't think that would be terribly out of place.

> struct svc_fh fh;
> int err;
> struct nfsd_net *nn = net_generic(net, nfsd_net_id);

--
Chuck Lever