Re: [PATCH 3/4] xfs: remove deprecated sysctl knobs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 03, 2025 at 08:00:24AM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@xxxxxxxxxx>
> 
> These sysctl knobs were scheduled for removal in September 2025.  That
> time has come, so remove them.
> 
> Signed-off-by: "Darrick J. Wong" <djwong@xxxxxxxxxx>
> ---
>  fs/xfs/xfs_linux.h                |    2 --
>  fs/xfs/xfs_sysctl.h               |    3 ---
>  Documentation/admin-guide/xfs.rst |   26 ++++----------------------
>  fs/xfs/libxfs/xfs_inode_util.c    |   11 -----------
>  fs/xfs/xfs_globals.c              |    2 --
>  fs/xfs/xfs_iops.c                 |   12 +++++-------
>  fs/xfs/xfs_sysctl.c               |   29 +----------------------------
>  7 files changed, 10 insertions(+), 75 deletions(-)
> 
> 
> diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
> index 9a2221b4aa21ed..4dd747bdbccab2 100644
> --- a/fs/xfs/xfs_linux.h
> +++ b/fs/xfs/xfs_linux.h
> @@ -89,8 +89,6 @@ typedef __u32			xfs_nlink_t;
>  #undef XFS_NATIVE_HOST
>  #endif
> 
> -#define irix_sgid_inherit	xfs_params.sgid_inherit.val
> -#define irix_symlink_mode	xfs_params.symlink_mode.val

R.I.P Irix....

Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>


>  #define xfs_panic_mask		xfs_params.panic_mask.val
>  #define xfs_error_level		xfs_params.error_level.val
>  #define xfs_syncd_centisecs	xfs_params.syncd_timer.val
> diff --git a/fs/xfs/xfs_sysctl.h b/fs/xfs/xfs_sysctl.h
> index 51646f066c4f7d..ed9d896079c1a8 100644
> --- a/fs/xfs/xfs_sysctl.h
> +++ b/fs/xfs/xfs_sysctl.h
> @@ -19,9 +19,6 @@ typedef struct xfs_sysctl_val {
>  } xfs_sysctl_val_t;
> 
>  typedef struct xfs_param {
> -	xfs_sysctl_val_t sgid_inherit;	/* Inherit S_ISGID if process' GID is
> -					 * not a member of parent dir GID. */
> -	xfs_sysctl_val_t symlink_mode;	/* Link creat mode affected by umask */
>  	xfs_sysctl_val_t panic_mask;	/* bitmask to cause panic on errors. */
>  	xfs_sysctl_val_t error_level;	/* Degree of reporting for problems  */
>  	xfs_sysctl_val_t syncd_timer;	/* Interval between xfssyncd wakeups */
> diff --git a/Documentation/admin-guide/xfs.rst b/Documentation/admin-guide/xfs.rst
> index 7ad746a3e66c25..d6f531f2c0e694 100644
> --- a/Documentation/admin-guide/xfs.rst
> +++ b/Documentation/admin-guide/xfs.rst
> @@ -289,9 +289,6 @@ The following sysctls are available for the XFS filesystem:
>  	removes unused preallocation from clean inodes and releases
>  	the unused space back to the free pool.
> 
> -  fs.xfs.speculative_cow_prealloc_lifetime
> -	This is an alias for speculative_prealloc_lifetime.
> -
>    fs.xfs.error_level		(Min: 0  Default: 3  Max: 11)
>  	A volume knob for error reporting when internal errors occur.
>  	This will generate detailed messages & backtraces for filesystem
> @@ -318,17 +315,6 @@ The following sysctls are available for the XFS filesystem:
> 
>  	This option is intended for debugging only.
> 
> -  fs.xfs.irix_symlink_mode	(Min: 0  Default: 0  Max: 1)
> -	Controls whether symlinks are created with mode 0777 (default)
> -	or whether their mode is affected by the umask (irix mode).
> -
> -  fs.xfs.irix_sgid_inherit	(Min: 0  Default: 0  Max: 1)
> -	Controls files created in SGID directories.
> -	If the group ID of the new file does not match the effective group
> -	ID or one of the supplementary group IDs of the parent dir, the
> -	ISGID bit is cleared if the irix_sgid_inherit compatibility sysctl
> -	is set.
> -
>    fs.xfs.inherit_sync		(Min: 0  Default: 1  Max: 1)
>  	Setting this to "1" will cause the "sync" flag set
>  	by the **xfs_io(8)** chattr command on a directory to be
> @@ -364,14 +350,7 @@ The following sysctls are available for the XFS filesystem:
>  Deprecated Sysctls
>  ==================
> 
> -===========================================     ================
> -  Name                                          Removal Schedule
> -===========================================     ================
> -fs.xfs.irix_sgid_inherit                        September 2025
> -fs.xfs.irix_symlink_mode                        September 2025
> -fs.xfs.speculative_cow_prealloc_lifetime        September 2025
> -===========================================     ================
> -
> +None currently.
> 
>  Removed Sysctls
>  ===============
> @@ -381,6 +360,9 @@ Removed Sysctls
>  =============================	=======
>    fs.xfs.xfsbufd_centisec	v4.0
>    fs.xfs.age_buffer_centisecs	v4.0
> +  fs.xfs.irix_symlink_mode      v6.18
> +  fs.xfs.irix_sgid_inherit      v6.18
> +  fs.xfs.speculative_cow_prealloc_lifetime      v6.18
>  =============================	=======
> 
>  Error handling
> diff --git a/fs/xfs/libxfs/xfs_inode_util.c b/fs/xfs/libxfs/xfs_inode_util.c
> index 48fe49a5f050f3..309ce6dd555383 100644
> --- a/fs/xfs/libxfs/xfs_inode_util.c
> +++ b/fs/xfs/libxfs/xfs_inode_util.c
> @@ -299,17 +299,6 @@ xfs_inode_init(
>  		} else {
>  			inode_init_owner(args->idmap, inode, dir, args->mode);
>  		}
> -
> -		/*
> -		 * If the group ID of the new file does not match the effective
> -		 * group ID or one of the supplementary group IDs, the S_ISGID
> -		 * bit is cleared (and only if the irix_sgid_inherit
> -		 * compatibility variable is set).
> -		 */
> -		if (irix_sgid_inherit && (inode->i_mode & S_ISGID) &&
> -		    !vfsgid_in_group_p(i_gid_into_vfsgid(args->idmap, inode)))
> -			inode->i_mode &= ~S_ISGID;
> -
>  		ip->i_projid = xfs_get_initial_prid(pip);
>  	}
> 
> diff --git a/fs/xfs/xfs_globals.c b/fs/xfs/xfs_globals.c
> index f6f628c01febaf..566fd663c95bba 100644
> --- a/fs/xfs/xfs_globals.c
> +++ b/fs/xfs/xfs_globals.c
> @@ -14,8 +14,6 @@
>   */
>  xfs_param_t xfs_params = {
>  			  /*	MIN		DFLT		MAX	*/
> -	.sgid_inherit	= {	0,		0,		1	},
> -	.symlink_mode	= {	0,		0,		1	},
>  	.panic_mask	= {	0,		0,		XFS_PTAG_MASK},
>  	.error_level	= {	0,		3,		11	},
>  	.syncd_timer	= {	1*100,		30*100,		7200*100},
> diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
> index 603effabe1ee12..afd041e28bb26a 100644
> --- a/fs/xfs/xfs_iops.c
> +++ b/fs/xfs/xfs_iops.c
> @@ -431,14 +431,12 @@ xfs_vn_symlink(
>  	struct dentry		*dentry,
>  	const char		*symname)
>  {
> -	struct inode	*inode;
> -	struct xfs_inode *cip = NULL;
> -	struct xfs_name	name;
> -	int		error;
> -	umode_t		mode;
> +	struct inode		*inode;
> +	struct xfs_inode	*cip = NULL;
> +	struct xfs_name		name;
> +	int			error;
> +	umode_t			mode = S_IFLNK | S_IRWXUGO;
> 
> -	mode = S_IFLNK |
> -		(irix_symlink_mode ? 0777 & ~current_umask() : S_IRWXUGO);
>  	error = xfs_dentry_mode_to_name(&name, dentry, mode);
>  	if (unlikely(error))
>  		goto out;
> diff --git a/fs/xfs/xfs_sysctl.c b/fs/xfs/xfs_sysctl.c
> index 751dc74a30671a..9918f14b4874fd 100644
> --- a/fs/xfs/xfs_sysctl.c
> +++ b/fs/xfs/xfs_sysctl.c
> @@ -50,7 +50,7 @@ xfs_panic_mask_proc_handler(
>  }
>  #endif /* CONFIG_PROC_FS */
> 
> -STATIC int
> +static inline int
>  xfs_deprecated_dointvec_minmax(
>  	const struct ctl_table	*ctl,
>  	int			write,
> @@ -67,24 +67,6 @@ xfs_deprecated_dointvec_minmax(
>  }
> 
>  static const struct ctl_table xfs_table[] = {
> -	{
> -		.procname	= "irix_sgid_inherit",
> -		.data		= &xfs_params.sgid_inherit.val,
> -		.maxlen		= sizeof(int),
> -		.mode		= 0644,
> -		.proc_handler	= xfs_deprecated_dointvec_minmax,
> -		.extra1		= &xfs_params.sgid_inherit.min,
> -		.extra2		= &xfs_params.sgid_inherit.max
> -	},
> -	{
> -		.procname	= "irix_symlink_mode",
> -		.data		= &xfs_params.symlink_mode.val,
> -		.maxlen		= sizeof(int),
> -		.mode		= 0644,
> -		.proc_handler	= xfs_deprecated_dointvec_minmax,
> -		.extra1		= &xfs_params.symlink_mode.min,
> -		.extra2		= &xfs_params.symlink_mode.max
> -	},
>  	{
>  		.procname	= "panic_mask",
>  		.data		= &xfs_params.panic_mask.val,
> @@ -185,15 +167,6 @@ static const struct ctl_table xfs_table[] = {
>  		.extra1		= &xfs_params.blockgc_timer.min,
>  		.extra2		= &xfs_params.blockgc_timer.max,
>  	},
> -	{
> -		.procname	= "speculative_cow_prealloc_lifetime",
> -		.data		= &xfs_params.blockgc_timer.val,
> -		.maxlen		= sizeof(int),
> -		.mode		= 0644,
> -		.proc_handler	= xfs_deprecated_dointvec_minmax,
> -		.extra1		= &xfs_params.blockgc_timer.min,
> -		.extra2		= &xfs_params.blockgc_timer.max,
> -	},
>  	/* please keep this the last entry */
>  #ifdef CONFIG_PROC_FS
>  	{
> 
> 




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux