From: Darrick J. Wong <djwong@xxxxxxxxxx> Remove any fs-verity extended attributes when the filesystem doesn't support fs-verity. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- repair/attr_repair.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/repair/attr_repair.c b/repair/attr_repair.c index 227e5dbcd016..898eb3edfd12 100644 --- a/repair/attr_repair.c +++ b/repair/attr_repair.c @@ -334,6 +334,13 @@ process_shortform_attr( junkit |= 1; } + if ((currententry->flags & XFS_ATTR_VERITY) && + !xfs_has_verity(mp)) { + do_warn( + _("verity metadata found on filesystem that doesn't support verity\n")); + junkit |= 1; + } + remainingspace = remainingspace - xfs_attr_sf_entsize(currententry); @@ -543,6 +550,14 @@ process_leaf_attr_local( return -1; } + if ((entry->flags & XFS_ATTR_VERITY) && !xfs_has_verity(mp)) { + do_warn( + _("verity metadata found in attribute entry %d in attr block %u, inode %" + PRIu64 " on filesystem that doesn't support verity\n"), + i, da_bno, ino); + return -1; + } + return xfs_attr_leaf_entsize_local(local->namelen, be16_to_cpu(local->valuelen)); } @@ -592,6 +607,14 @@ process_leaf_attr_remote( return -1; } + if ((entry->flags & XFS_ATTR_VERITY) && !xfs_has_verity(mp)) { + do_warn( + _("verity metadata found in attribute entry %d in attr block %u, inode %" + PRIu64 " on filesystem that doesn't support verity\n"), + i, da_bno, ino); + return -1; + } + value = malloc(be32_to_cpu(remotep->valuelen)); if (value == NULL) { do_warn(