New code for 5.8:
    - Various cleanups to remove dead code, unnecessary conditionals,
      asserts, etc.
    - Fix a linker warning caused by xfs stuffing '-g' into CFLAGS
      redundantly.
    - Tighten up our dmesg logging to ensure that everything is prefixed
      with 'XFS' for easier grepping.
    - Kill a bunch of typedefs.
    - Refactor the deferred ops code to reduce indirect function calls.
    - Increase type-safety with the deferred ops code.
    - Make the DAX mount options a tri-state.
    - Fix some error handling problems in the inode flush code and clean up
      other inode flush warts.
    - Refactor log recovery so that each log item recovery functions now live
      with the other log item processing code.
    - Fix some SPDX forms.
    - Fix quota counter corruption if the fs crashes after running
      quotacheck but before any dquots get logged.
    - Don't fail metadata verification on zero-entry attr leaf blocks, since
      they're just part of the disk format now due to a historic lack of log
      atomicity.
    - Don't allow SWAPEXT between files with different [ugp]id when quotas
      are enabled.
    - Refactor inode fork reading and verification to run directly from the
      inode-from-disk function.  This means that we now actually guarantee
      that _iget'ted inodes are totally verified and ready to go.
    - Move the incore inode fork format and extent counts to the ifork
      structure.