xfs: require XFS_SB_FEAT_INCOMPAT_LOG_XATTRS for attr log intent item recovery
authorDarrick J. Wong <djwong@kernel.org>
Mon, 22 Apr 2024 16:47:24 +0000 (09:47 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 23 Apr 2024 14:46:51 +0000 (07:46 -0700)
The XFS_SB_FEAT_INCOMPAT_LOG_XATTRS feature bit protects a filesystem
from old kernels that do not know how to recover extended attribute log
intent items.  Make this check mandatory instead of a debugging assert.

Fixes: fd920008784ea ("xfs: Set up infrastructure for log attribute replay")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/xfs_attr_item.c

index 541455731618b3403a3c0833a2fb70267e5e587b..dfe7039dac9890907b82dc3b6f71be3e2a83b835 100644 (file)
@@ -469,6 +469,9 @@ xfs_attri_validate(
        unsigned int                    op = attrp->alfi_op_flags &
                                             XFS_ATTRI_OP_FLAGS_TYPE_MASK;
 
+       if (!xfs_sb_version_haslogxattrs(&mp->m_sb))
+               return false;
+
        if (attrp->__pad != 0)
                return false;
 
@@ -570,8 +573,6 @@ xfs_attri_recover_work(
                         XFS_DA_OP_LOGGED;
        args->owner = args->dp->i_ino;
 
-       ASSERT(xfs_sb_version_haslogxattrs(&mp->m_sb));
-
        switch (attr->xattri_op_flags) {
        case XFS_ATTRI_OP_FLAGS_SET:
        case XFS_ATTRI_OP_FLAGS_REPLACE: