xfs: remove deprecated sysctl knobs

These sysctl knobs were scheduled for removal in September 2025.  That
time has come, so remove them.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
pull/1354/merge
Darrick J. Wong 2025-09-02 14:38:27 -07:00
parent b9a176e541
commit 21d59d0022
7 changed files with 10 additions and 75 deletions

View File

@ -289,9 +289,6 @@ The following sysctls are available for the XFS filesystem:
removes unused preallocation from clean inodes and releases removes unused preallocation from clean inodes and releases
the unused space back to the free pool. 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) fs.xfs.error_level (Min: 0 Default: 3 Max: 11)
A volume knob for error reporting when internal errors occur. A volume knob for error reporting when internal errors occur.
This will generate detailed messages & backtraces for filesystem 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. 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) fs.xfs.inherit_sync (Min: 0 Default: 1 Max: 1)
Setting this to "1" will cause the "sync" flag set Setting this to "1" will cause the "sync" flag set
by the **xfs_io(8)** chattr command on a directory to be 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 Deprecated Sysctls
================== ==================
=========================================== ================ None currently.
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
=========================================== ================
Removed Sysctls Removed Sysctls
=============== ===============
@ -381,6 +360,9 @@ Removed Sysctls
============================= ======= ============================= =======
fs.xfs.xfsbufd_centisec v4.0 fs.xfs.xfsbufd_centisec v4.0
fs.xfs.age_buffer_centisecs 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 Error handling

View File

@ -299,17 +299,6 @@ xfs_inode_init(
} else { } else {
inode_init_owner(args->idmap, inode, dir, args->mode); 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); ip->i_projid = xfs_get_initial_prid(pip);
} }

View File

@ -14,8 +14,6 @@
*/ */
xfs_param_t xfs_params = { xfs_param_t xfs_params = {
/* MIN DFLT MAX */ /* MIN DFLT MAX */
.sgid_inherit = { 0, 0, 1 },
.symlink_mode = { 0, 0, 1 },
.panic_mask = { 0, 0, XFS_PTAG_MASK}, .panic_mask = { 0, 0, XFS_PTAG_MASK},
.error_level = { 0, 3, 11 }, .error_level = { 0, 3, 11 },
.syncd_timer = { 1*100, 30*100, 7200*100}, .syncd_timer = { 1*100, 30*100, 7200*100},

View File

@ -435,10 +435,8 @@ xfs_vn_symlink(
struct xfs_inode *cip = NULL; struct xfs_inode *cip = NULL;
struct xfs_name name; struct xfs_name name;
int error; int error;
umode_t mode; 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); error = xfs_dentry_mode_to_name(&name, dentry, mode);
if (unlikely(error)) if (unlikely(error))
goto out; goto out;

View File

@ -89,8 +89,6 @@ typedef __u32 xfs_nlink_t;
#undef XFS_NATIVE_HOST #undef XFS_NATIVE_HOST
#endif #endif
#define irix_sgid_inherit xfs_params.sgid_inherit.val
#define irix_symlink_mode xfs_params.symlink_mode.val
#define xfs_panic_mask xfs_params.panic_mask.val #define xfs_panic_mask xfs_params.panic_mask.val
#define xfs_error_level xfs_params.error_level.val #define xfs_error_level xfs_params.error_level.val
#define xfs_syncd_centisecs xfs_params.syncd_timer.val #define xfs_syncd_centisecs xfs_params.syncd_timer.val

View File

@ -50,7 +50,7 @@ xfs_panic_mask_proc_handler(
} }
#endif /* CONFIG_PROC_FS */ #endif /* CONFIG_PROC_FS */
STATIC int static inline int
xfs_deprecated_dointvec_minmax( xfs_deprecated_dointvec_minmax(
const struct ctl_table *ctl, const struct ctl_table *ctl,
int write, int write,
@ -67,24 +67,6 @@ xfs_deprecated_dointvec_minmax(
} }
static const struct ctl_table xfs_table[] = { 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", .procname = "panic_mask",
.data = &xfs_params.panic_mask.val, .data = &xfs_params.panic_mask.val,
@ -185,15 +167,6 @@ static const struct ctl_table xfs_table[] = {
.extra1 = &xfs_params.blockgc_timer.min, .extra1 = &xfs_params.blockgc_timer.min,
.extra2 = &xfs_params.blockgc_timer.max, .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 */ /* please keep this the last entry */
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
{ {

View File

@ -19,9 +19,6 @@ typedef struct xfs_sysctl_val {
} xfs_sysctl_val_t; } xfs_sysctl_val_t;
typedef struct xfs_param { 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 panic_mask; /* bitmask to cause panic on errors. */
xfs_sysctl_val_t error_level; /* Degree of reporting for problems */ xfs_sysctl_val_t error_level; /* Degree of reporting for problems */
xfs_sysctl_val_t syncd_timer; /* Interval between xfssyncd wakeups */ xfs_sysctl_val_t syncd_timer; /* Interval between xfssyncd wakeups */