Commit da5de110 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: validate feature support when recovering rmap/refcount intents

The rmap, and refcount log intent items were added to support the rmap
and reflink features.  Because these features come with changes to the
ondisk format, the log items aren't tied to a log incompat flag.

However, the log recovery routines don't actually check for those
feature flags.  The kernel has no business replayng an intent item for a
feature that isn't enabled, so check that as part of recovered log item
validation.  (Note that kernels pre-dating rmap and reflink already fail
log recovery on the unknown log item type code.)
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
parent 7396c7fb
...@@ -423,6 +423,9 @@ xfs_cui_validate_phys( ...@@ -423,6 +423,9 @@ xfs_cui_validate_phys(
struct xfs_mount *mp, struct xfs_mount *mp,
struct xfs_phys_extent *refc) struct xfs_phys_extent *refc)
{ {
if (!xfs_sb_version_hasreflink(&mp->m_sb))
return false;
if (refc->pe_flags & ~XFS_REFCOUNT_EXTENT_FLAGS) if (refc->pe_flags & ~XFS_REFCOUNT_EXTENT_FLAGS)
return false; return false;
......
...@@ -466,6 +466,9 @@ xfs_rui_validate_map( ...@@ -466,6 +466,9 @@ xfs_rui_validate_map(
struct xfs_mount *mp, struct xfs_mount *mp,
struct xfs_map_extent *rmap) struct xfs_map_extent *rmap)
{ {
if (!xfs_sb_version_hasrmapbt(&mp->m_sb))
return false;
if (rmap->me_flags & ~XFS_RMAP_EXTENT_FLAGS) if (rmap->me_flags & ~XFS_RMAP_EXTENT_FLAGS)
return false; return false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment