New code for 5.11:
- Introduce a "needsrepair" "feature" to flag a filesystem as needing a
  pass through xfs_repair.  This is key to enabling filesystem upgrades
  (in xfs_db) that require xfs_repair to make minor adjustments to metadata.
- Refactor parameter checking of recovered log intent items so that we
  actually use the same validation code as them that generate the intent
  items.
- Various fixes to online scrub not reacting correctly to directory
  entries pointing to inodes that cannot be igetted.
- Refactor validation helpers for data and rt volume extents.
- Refactor XFS_TRANS_DQ_DIRTY out of existence.
- Fix a longstanding bug where mounting with "uqnoenforce" would start
  user quotas in non-enforcing mode but /proc/mounts would display
  "usrquota", implying that they are being enforced.
- Don't flag dax+reflink inodes as corruption since that is a valid (but
  not fully functional) combination right now.
- Clean up raid stripe validation functions.
xfs: don't catch dax+reflink inodes as corruption in verifier

We don't yet support dax on reflinked files, but that is in the works.

Further, having the flag set does not automatically mean that the inode
is actually "in the CPU direct access state," which depends on several
other conditions in addition to the flag being set.

As such, we should not catch this as corruption in the verifier - simply
not actually enabling S_DAX on reflinked files is enough for now.

Fixes: 4f435ebe7d04 ("xfs: don't mix reflink and DAX mode for now")
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
[darrick: fix the scrubber too]
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2 files changed