]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
xfs: always warn about deprecated mount options
authorDarrick J. Wong <djwong@kernel.org>
Tue, 21 Oct 2025 18:30:12 +0000 (11:30 -0700)
committerCarlos Maiolino <cem@kernel.org>
Wed, 22 Oct 2025 08:04:39 +0000 (10:04 +0200)
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.

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>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/xfs_super.c

index 9d51186b24ddb442668463e7c5ab6292da5f1020..c53f2edf92e7b21395e0634f110bf587a8e1a591 100644 (file)
@@ -1379,16 +1379,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)
-               return;
        xfs_warn(fc->s_fs_info, "%s mount option is deprecated.", param->key);
 }