On Tue, Oct 21, 2025 at 11:30:12AM -0700, Darrick J. Wong wrote:
From: Darrick J. Wong djwong@kernel.org
The deprecation of the 'attr2' mount option in 6.18 wasn't entirely successful because nobody noticed that the kernel never printed a warning about attr2 being set in fstab if the only xfs filesystem is the root fs; the initramfs mounts the root fs with no mount options; and the init scripts only conveyed the fstab options by remounting the root fs.
This is a weird behavior IMHO, as far as I remember not all mount options should necessarily work with remount and what the initramfs initially mounted might not reflect the reality the user expects. Assuming the 'remount' used here does not mean unmounting/mounting the root fs, but using mount -o remount...
This is not a concern this patch should consider though, it looks fine as-is.
Reviewed-by: Carlos Maiolino cmaiolino@redhat.com
Fix this by making it complain all the time.
Cc: stable@vger.kernel.org # v5.13 Fixes: 92cf7d36384b99 ("xfs: Skip repetitive warnings about mount options") Signed-off-by: "Darrick J. Wong" djwong@kernel.org Reviewed-by: Christoph Hellwig hch@lst.de
fs/xfs/xfs_super.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index e85a156dc17d16..ae9b17730eaf41 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -1373,16 +1373,25 @@ suffix_kstrtoull( static inline void xfs_fs_warn_deprecated( struct fs_context *fc,
- struct fs_parameter *param,
- uint64_t flag,
- bool value)
- struct fs_parameter *param)
{
- /* Don't print the warning if reconfiguring and current mount point
* already had the flag set
- /*
* Always warn about someone passing in a deprecated mount option.
* Previously we wouldn't print the warning if we were reconfiguring
* and current mount point already had the flag set, but that was not
* the right thing to do.
*
* Many distributions mount the root filesystem with no options in the
* initramfs and rely on mount -a to remount the root fs with the
* options in fstab. However, the old behavior meant that there would
* never be a warning about deprecated mount options for the root fs in
* /etc/fstab. On a single-fs system, that means no warning at all.
*
* Compounding this problem are distribution scripts that copy
* /proc/mounts to fstab, which means that we can't remove mount
* options unless we're 100% sure they have only ever been advertised
*/* in /proc/mounts in response to explicitly provided mount options.
- if ((fc->purpose & FS_CONTEXT_FOR_RECONFIGURE) &&
!!(XFS_M(fc->root->d_sb)->m_features & flag) == value)
xfs_warn(fc->s_fs_info, "%s mount option is deprecated.", param->key);return;
}