]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfs: check v5 superblock features early
authorChristoph Hellwig <hch@lst.de>
Wed, 29 Jul 2026 13:00:58 +0000 (15:00 +0200)
committerCarlos Maiolino <cem@kernel.org>
Mon, 3 Aug 2026 08:30:28 +0000 (10:30 +0200)
When working on a new features that reuses the existing pad in the
superblock, I noticed that mounting such a file system on an old kernel
logs a rather confusing warning:

    XFS (vdc): Metadir superblock padding fields must be zero.

This is because we only validate the various feature fields in v5
superblocks after the common superblock validation helper is called.

Fix this by calling the feature validation first.

Fixes: eca383fcd63b ("xfs: refactor superblock verifiers")
Cc: <stable@vger.kernel.org> # v4.19
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/libxfs/xfs_sb.c

index 47322adb7690599f7c25e591c8650f437ddd94dd..75f2a021ee6d4a7608fac6e1ee5ed7f566f11fe5 100644 (file)
@@ -1118,10 +1118,10 @@ xfs_sb_read_verify(
         * because _verify_common checks the on-disk values.
         */
        __xfs_sb_from_disk(&sb, dsb, false);
-       error = xfs_validate_sb_common(mp, bp, &sb);
+       error = xfs_validate_sb_read(mp, &sb);
        if (error)
                goto out_error;
-       error = xfs_validate_sb_read(mp, &sb);
+       error = xfs_validate_sb_common(mp, bp, &sb);
 
 out_error:
        if (error == -EFSCORRUPTED || error == -EFSBADCRC)