[PATCH v5 5/5] Revert "nfsd: Mark variable __maybe_unused to avoid W=1 build break"

Sean Chang posted 5 patches 1 week, 6 days ago
[PATCH v5 5/5] Revert "nfsd: Mark variable __maybe_unused to avoid W=1 build break"
Posted by Sean Chang 1 week, 6 days ago
This reverts commit ebae102897e760e9e6bc625f701dd666b2163bd1.

The __maybe_unused attributes are no longer needed because dprintk()
now uses no_printk(), which ensures variables are referenced by the
compiler even when debugging is disabled.

Signed-off-by: Sean Chang <seanwascoding@gmail.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 8fdbba7cad96..8116e5bcbe00 100644
--- a/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -1025,7 +1025,7 @@ exp_rootfh(struct net *net, struct auth_domain *clp, char *name,
 {
 	struct svc_export	*exp;
 	struct path		path;
-	struct inode		*inode __maybe_unused;
+	struct inode		*inode;
 	struct svc_fh		fh;
 	int			err;
 	struct nfsd_net		*nn = net_generic(net, nfsd_net_id);
-- 
2.34.1
Re: [PATCH v5 5/5] Revert "nfsd: Mark variable __maybe_unused to avoid W=1 build break"
Posted by Chuck Lever 1 week, 6 days ago
On 3/21/26 10:15 AM, Sean Chang wrote:
> This reverts commit ebae102897e760e9e6bc625f701dd666b2163bd1.
> 
> The __maybe_unused attributes are no longer needed because dprintk()
> now uses no_printk(), which ensures variables are referenced by the
> compiler even when debugging is disabled.

Some commit message improvements are needed:

This revert is safe only because ("sunrpc: Fix dprintk type mismatch
using do-while(0)") already changed the non-debug dfprintk path to use
no_printk(__VA_ARGS__). The commit message doesn't reference that
enabling commit by SHA or subject. If this revert is cherry-picked or
backported without that pre-requisite, the W=1 build warning returns
silently.

The commit message says "dprintk() now uses no_printk()", but this is
true only for the !CONFIG_SUNRPC_DEBUG path. When CONFIG_SUNRPC_DEBUG is
enabled, dfprintk expands inode directly via __sunrpc_printk, not
through no_printk.


> Signed-off-by: Sean Chang <seanwascoding@gmail.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 8fdbba7cad96..8116e5bcbe00 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -1025,7 +1025,7 @@ exp_rootfh(struct net *net, struct auth_domain *clp, char *name,
>  {
>  	struct svc_export	*exp;
>  	struct path		path;
> -	struct inode		*inode __maybe_unused;
> +	struct inode		*inode;
>  	struct svc_fh		fh;
>  	int			err;
>  	struct nfsd_net		*nn = net_generic(net, nfsd_net_id);


-- 
Chuck Lever
Re: [PATCH v5 5/5] Revert "nfsd: Mark variable __maybe_unused to avoid W=1 build break"
Posted by Sean Chang 1 week, 2 days ago
On Sun, Mar 22, 2026 at 12:38 AM Chuck Lever <chuck.lever@oracle.com> wrote:
>
> On 3/21/26 10:15 AM, Sean Chang wrote:
> > This reverts commit ebae102897e760e9e6bc625f701dd666b2163bd1.
> >
> > The __maybe_unused attributes are no longer needed because dprintk()
> > now uses no_printk(), which ensures variables are referenced by the
> > compiler even when debugging is disabled.
>
> Some commit message improvements are needed:
>
> This revert is safe only because ("sunrpc: Fix dprintk type mismatch
> using do-while(0)") already changed the non-debug dfprintk path to use
> no_printk(__VA_ARGS__). The commit message doesn't reference that
> enabling commit by SHA or subject. If this revert is cherry-picked or
> backported without that pre-requisite, the W=1 build warning returns
> silently.
>
> The commit message says "dprintk() now uses no_printk()", but this is
> true only for the !CONFIG_SUNRPC_DEBUG path. When CONFIG_SUNRPC_DEBUG is
> enabled, dfprintk expands inode directly via __sunrpc_printk, not
> through no_printk.
>

Hi Chunk,

Thanks for pointing out these issues. I will update the commit message
to be more precise and clearly state the dependencies.

The corrected version will be:
The __maybe_unused attributes are no longer needed for the
!CONFIG_SUNRPC_DEBUG case. This revert depends on a prerequisite
change in this series: "sunrpc: Fix dprintk type mismatch using do-while(0)"

That change updated the non-debug dfprintk path to use no_printk(),
which ensures that arguments are always referenced by the compiler
for type checking, even when debugging is disabled.