[PATCH v2 2/2] nfsd: remove NFSD_V4_DELEG_TIMESTAMPS Kconfig option

Jeff Layton posted 2 patches 1 week, 6 days ago
There is a newer version of this series
[PATCH v2 2/2] nfsd: remove NFSD_V4_DELEG_TIMESTAMPS Kconfig option
Posted by Jeff Layton 1 week, 6 days ago
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
Re: [PATCH v2 2/2] nfsd: remove NFSD_V4_DELEG_TIMESTAMPS Kconfig option
Posted by Chuck Lever 1 week, 6 days ago

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
Re: [PATCH v2 2/2] nfsd: remove NFSD_V4_DELEG_TIMESTAMPS Kconfig option
Posted by Jeff Layton 1 week, 6 days ago
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>