Refactor nfs_errorf() and nfs_ferrorf() to the standard do-while(0)
pattern for safer macro expansion and kernel style compliance.
Additionally, remove nfs_warnf() and nfs_fwarnf() as `git grep`
confirms they have no callers in the current tree. Furthermore,
these functions have remained unused since the introduction in
commit ce8866f0913f ("NFS: Attach supplementary error information
to fs_context.").
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202603110038.P6d14oxa-lkp@intel.com/
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Tested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Sean Chang <seanwascoding@gmail.com>
---
fs/nfs/internal.h | 28 +++++++++++++---------------
1 file changed, 13 insertions(+), 15 deletions(-)
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
index 63e09dfc27a8..59ab43542390 100644
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -161,13 +161,19 @@ enum nfs_lock_status {
NFS_LOCK_NOLOCK = 2,
};
-#define nfs_errorf(fc, fmt, ...) ((fc)->log.log ? \
- errorf(fc, fmt, ## __VA_ARGS__) : \
- ({ dprintk(fmt "\n", ## __VA_ARGS__); }))
-
-#define nfs_ferrorf(fc, fac, fmt, ...) ((fc)->log.log ? \
- errorf(fc, fmt, ## __VA_ARGS__) : \
- ({ dfprintk(fac, fmt "\n", ## __VA_ARGS__); }))
+#define nfs_errorf(fc, fmt, ...) do { \
+ if ((fc)->log.log) \
+ errorf(fc, fmt, ## __VA_ARGS__); \
+ else \
+ dprintk(fmt "\n", ## __VA_ARGS__); \
+} while (0)
+
+#define nfs_ferrorf(fc, fac, fmt, ...) do { \
+ if ((fc)->log.log) \
+ errorf(fc, fmt, ## __VA_ARGS__); \
+ else \
+ dfprintk(fac, fmt "\n", ## __VA_ARGS__); \
+} while (0)
#define nfs_invalf(fc, fmt, ...) ((fc)->log.log ? \
invalf(fc, fmt, ## __VA_ARGS__) : \
@@ -177,14 +183,6 @@ enum nfs_lock_status {
invalf(fc, fmt, ## __VA_ARGS__) : \
({ dfprintk(fac, fmt "\n", ## __VA_ARGS__); -EINVAL; }))
-#define nfs_warnf(fc, fmt, ...) ((fc)->log.log ? \
- warnf(fc, fmt, ## __VA_ARGS__) : \
- ({ dprintk(fmt "\n", ## __VA_ARGS__); }))
-
-#define nfs_fwarnf(fc, fac, fmt, ...) ((fc)->log.log ? \
- warnf(fc, fmt, ## __VA_ARGS__) : \
- ({ dfprintk(fac, fmt "\n", ## __VA_ARGS__); }))
-
static inline struct nfs_fs_context *nfs_fc2context(const struct fs_context *fc)
{
return fc->fs_private;
--
2.34.1
On 3/21/26 10:15 AM, Sean Chang wrote:
> Refactor nfs_errorf() and nfs_ferrorf() to the standard do-while(0)
> pattern for safer macro expansion and kernel style compliance.
>
> Additionally, remove nfs_warnf() and nfs_fwarnf() as `git grep`
> confirms they have no callers in the current tree. Furthermore,
> these functions have remained unused since the introduction in
> commit ce8866f0913f ("NFS: Attach supplementary error information
> to fs_context.").
>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202603110038.P6d14oxa-lkp@intel.com/
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
> Tested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
> Signed-off-by: Sean Chang <seanwascoding@gmail.com>
> ---
> fs/nfs/internal.h | 28 +++++++++++++---------------
> 1 file changed, 13 insertions(+), 15 deletions(-)
I need an Acked-by: from the NFS client maintainers on this one.
--
Chuck Lever
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:
> > Refactor nfs_errorf() and nfs_ferrorf() to the standard do-while(0)
> > pattern for safer macro expansion and kernel style compliance.
> >
> > Additionally, remove nfs_warnf() and nfs_fwarnf() as `git grep`
> > confirms they have no callers in the current tree. Furthermore,
> > these functions have remained unused since the introduction in
> > commit ce8866f0913f ("NFS: Attach supplementary error information
> > to fs_context.").
> >
> > Reported-by: kernel test robot <lkp@intel.com>
> > Closes: https://lore.kernel.org/oe-kbuild-all/202603110038.P6d14oxa-lkp@intel.com/
> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
> > Tested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
> > Signed-off-by: Sean Chang <seanwascoding@gmail.com>
> > ---
> > fs/nfs/internal.h | 28 +++++++++++++---------------
> > 1 file changed, 13 insertions(+), 15 deletions(-)
>
> I need an Acked-by: from the NFS client maintainers on this one.
>
Hi Trond, Anna,
Could you please take a look at this refactoring patch for fs/nfs/internal.h?
This patch addresses a Sparse warning reported by the kernel test robot
where a ternary operation in the macros resulted in inconsistent types
(void vs int).
I have refactored the macros to use the standard do-while(0) pattern.
Andy Shevchenko has already reviewed and tested this, and Chuck is
looking for an Acked-by from the NFS client side to proceed with merging.
I'd appreciate your feedback or an Acked-by if this looks good to you.
Best Regards,
Sean
© 2016 - 2026 Red Hat, Inc.