Now that there is a runtime debugfs switch, eliminate the compile-time
switch and always build in support for delegated timestamps.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
fs/nfsd/Kconfig | 10 ----------
fs/nfsd/nfs4state.c | 7 -------
2 files changed, 17 deletions(-)
diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
index 4fd6e818565ea24e4e16844a3f82e808dbc558f8..fc0e87eaa25714d621aa893c99dabe4ce34228df 100644
--- a/fs/nfsd/Kconfig
+++ b/fs/nfsd/Kconfig
@@ -177,16 +177,6 @@ config NFSD_LEGACY_CLIENT_TRACKING
and will be removed in the future. Say Y here if you need support
for them in the interim.
-config NFSD_V4_DELEG_TIMESTAMPS
- bool "Support delegated timestamps"
- depends on NFSD_V4
- default n
- help
- NFSD implements delegated timestamps according to
- draft-ietf-nfsv4-delstid-08 "Extending the Opening of Files". This
- is currently an experimental feature and is therefore left disabled
- by default.
-
config NFSD_V4_POSIX_ACLS
bool "Support NFSv4 POSIX draft ACLs"
depends on NFSD_V4
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 95f2e87141a7ab5dd3da6741859bdcae28a8c6c0..e2f29ba490c6335e2cb6c3a411770b3a19755095 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -6047,19 +6047,12 @@ nfsd4_verify_setuid_write(struct nfsd4_open *open, struct nfsd_file *nf)
return 0;
}
-#ifdef CONFIG_NFSD_V4_DELEG_TIMESTAMPS
static bool nfsd4_want_deleg_timestamps(const struct nfsd4_open *open)
{
if (!nfsd_delegts_enabled)
return false;
return open->op_deleg_want & OPEN4_SHARE_ACCESS_WANT_DELEG_TIMESTAMPS;
}
-#else /* CONFIG_NFSD_V4_DELEG_TIMESTAMPS */
-static bool nfsd4_want_deleg_timestamps(const struct nfsd4_open *open)
-{
- return false;
-}
-#endif /* CONFIG NFSD_V4_DELEG_TIMESTAMPS */
static struct nfs4_delegation *
nfs4_set_delegation(struct nfsd4_open *open, struct nfs4_ol_stateid *stp,
--
2.52.0
On Sun, Jan 25, 2026, at 7:24 AM, Jeff Layton wrote:
> Now that there is a runtime debugfs switch, eliminate the compile-time
> switch and always build in support for delegated timestamps.
>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
> fs/nfsd/Kconfig | 10 ----------
> fs/nfsd/nfs4state.c | 7 -------
> 2 files changed, 17 deletions(-)
>
> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
> index
> 4fd6e818565ea24e4e16844a3f82e808dbc558f8..fc0e87eaa25714d621aa893c99dabe4ce34228df
> 100644
> --- a/fs/nfsd/Kconfig
> +++ b/fs/nfsd/Kconfig
> @@ -177,16 +177,6 @@ config NFSD_LEGACY_CLIENT_TRACKING
> and will be removed in the future. Say Y here if you need support
> for them in the interim.
>
> -config NFSD_V4_DELEG_TIMESTAMPS
> - bool "Support delegated timestamps"
> - depends on NFSD_V4
> - default n
> - help
> - NFSD implements delegated timestamps according to
> - draft-ietf-nfsv4-delstid-08 "Extending the Opening of Files". This
> - is currently an experimental feature and is therefore left disabled
> - by default.
> -
> config NFSD_V4_POSIX_ACLS
> bool "Support NFSv4 POSIX draft ACLs"
> depends on NFSD_V4
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index
> 95f2e87141a7ab5dd3da6741859bdcae28a8c6c0..e2f29ba490c6335e2cb6c3a411770b3a19755095
> 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -6047,19 +6047,12 @@ nfsd4_verify_setuid_write(struct nfsd4_open
> *open, struct nfsd_file *nf)
> return 0;
> }
>
> -#ifdef CONFIG_NFSD_V4_DELEG_TIMESTAMPS
> static bool nfsd4_want_deleg_timestamps(const struct nfsd4_open *open)
> {
> if (!nfsd_delegts_enabled)
> return false;
> return open->op_deleg_want & OPEN4_SHARE_ACCESS_WANT_DELEG_TIMESTAMPS;
> }
> -#else /* CONFIG_NFSD_V4_DELEG_TIMESTAMPS */
> -static bool nfsd4_want_deleg_timestamps(const struct nfsd4_open *open)
> -{
> - return false;
> -}
> -#endif /* CONFIG NFSD_V4_DELEG_TIMESTAMPS */
>
> static struct nfs4_delegation *
> nfs4_set_delegation(struct nfsd4_open *open, struct nfs4_ol_stateid *stp,
>
> --
> 2.52.0
Thanks for jumping on the robot report.
This time around, LLM review produced some comments related to
documentation that seem pretty sensible to me, so I'm passing
these along verbatim:
Key Concerns:
1. Behavioral change: Systems that previously disabled this experimental feature at compile-time will now have it enabled by default after upgrade. While the runtime switch allows disabling, administrators are not informed of this change.
2. Documentation gap: The commit message is minimal and doesn't explain the transition rationale, migration path, or the loss of the RFC specification reference that was in the Kconfig help text.
[ cel: Perhaps some of the context provided in the cover letter
is not visible to the LLM -- but note, that context won't appear
in the commit history either ]
Recommendations:
1. Consider whether nfsd_delegts_enabled should default to false to preserve the conservative default of the removed Kconfig option, or document the intentional policy shift
2. Expand commit message to include migration guidance:
Administrators who previously disabled this feature at compile time can disable it at runtime via:
echo 0 > /sys/kernel/debug/nfsd/delegated_timestamps
3. Add a brief comment above nfsd4_want_deleg_timestamps() documenting the debugfs control and RFC reference
As the new debugfs switch is intended to be undocumented and
temporary, I think adding some code comments and a little more
beef to the commit message (sorry vegans) would be helpful. You
don't need to go crazy with it.
--
Chuck Lever
On Sun, 2026-01-25 at 11:43 -0500, Chuck Lever wrote:
>
> On Sun, Jan 25, 2026, at 7:24 AM, Jeff Layton wrote:
> > Now that there is a runtime debugfs switch, eliminate the compile-time
> > switch and always build in support for delegated timestamps.
> >
> > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> > ---
> > fs/nfsd/Kconfig | 10 ----------
> > fs/nfsd/nfs4state.c | 7 -------
> > 2 files changed, 17 deletions(-)
> >
> > diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
> > index
> > 4fd6e818565ea24e4e16844a3f82e808dbc558f8..fc0e87eaa25714d621aa893c99dabe4ce34228df
> > 100644
> > --- a/fs/nfsd/Kconfig
> > +++ b/fs/nfsd/Kconfig
> > @@ -177,16 +177,6 @@ config NFSD_LEGACY_CLIENT_TRACKING
> > and will be removed in the future. Say Y here if you need support
> > for them in the interim.
> >
> > -config NFSD_V4_DELEG_TIMESTAMPS
> > - bool "Support delegated timestamps"
> > - depends on NFSD_V4
> > - default n
> > - help
> > - NFSD implements delegated timestamps according to
> > - draft-ietf-nfsv4-delstid-08 "Extending the Opening of Files". This
> > - is currently an experimental feature and is therefore left disabled
> > - by default.
> > -
> > config NFSD_V4_POSIX_ACLS
> > bool "Support NFSv4 POSIX draft ACLs"
> > depends on NFSD_V4
> > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> > index
> > 95f2e87141a7ab5dd3da6741859bdcae28a8c6c0..e2f29ba490c6335e2cb6c3a411770b3a19755095
> > 100644
> > --- a/fs/nfsd/nfs4state.c
> > +++ b/fs/nfsd/nfs4state.c
> > @@ -6047,19 +6047,12 @@ nfsd4_verify_setuid_write(struct nfsd4_open
> > *open, struct nfsd_file *nf)
> > return 0;
> > }
> >
> > -#ifdef CONFIG_NFSD_V4_DELEG_TIMESTAMPS
> > static bool nfsd4_want_deleg_timestamps(const struct nfsd4_open *open)
> > {
> > if (!nfsd_delegts_enabled)
> > return false;
> > return open->op_deleg_want & OPEN4_SHARE_ACCESS_WANT_DELEG_TIMESTAMPS;
> > }
> > -#else /* CONFIG_NFSD_V4_DELEG_TIMESTAMPS */
> > -static bool nfsd4_want_deleg_timestamps(const struct nfsd4_open *open)
> > -{
> > - return false;
> > -}
> > -#endif /* CONFIG NFSD_V4_DELEG_TIMESTAMPS */
> >
> > static struct nfs4_delegation *
> > nfs4_set_delegation(struct nfsd4_open *open, struct nfs4_ol_stateid *stp,
> >
> > --
> > 2.52.0
>
> Thanks for jumping on the robot report.
>
> This time around, LLM review produced some comments related to
> documentation that seem pretty sensible to me, so I'm passing
> these along verbatim:
>
> Key Concerns:
>
> 1. Behavioral change: Systems that previously disabled this experimental feature at compile-time will now have it enabled by default after upgrade. While the runtime switch allows disabling, administrators are not informed of this change.
> 2. Documentation gap: The commit message is minimal and doesn't explain the transition rationale, migration path, or the loss of the RFC specification reference that was in the Kconfig help text.
>
> [ cel: Perhaps some of the context provided in the cover letter
> is not visible to the LLM -- but note, that context won't appear
> in the commit history either ]
>
> Recommendations:
>
> 1. Consider whether nfsd_delegts_enabled should default to false to preserve the conservative default of the removed Kconfig option, or document the intentional policy shift
> 2. Expand commit message to include migration guidance:
> Administrators who previously disabled this feature at compile time can disable it at runtime via:
> echo 0 > /sys/kernel/debug/nfsd/delegated_timestamps
>
>
> 3. Add a brief comment above nfsd4_want_deleg_timestamps() documenting the debugfs control and RFC reference
>
>
> As the new debugfs switch is intended to be undocumented and
> temporary, I think adding some code comments and a little more
> beef to the commit message (sorry vegans) would be helpful. You
> don't need to go crazy with it.
>
Sounds good. I'll plan to send a v3.
Thanks,
--
Jeff Layton <jlayton@kernel.org>
© 2016 - 2026 Red Hat, Inc.