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.
    - Scalability improvements by reducing cacheline pingponging in
      struct xfs_mount.
    - More scalability improvements by removing m_active_trans from the
      hot path.
    - Fix inode counter update sanity checking to run /only/ on debug
      kernels.
    - Fix longstanding inconsistency in what error code we return when a
      program hits project quota limits (ENOSPC).
    - Fix group quota returning the wrong error code when a program hits
      group quota limits.
    - Fix per-type quota limits and grace periods for group and project
      quotas so that they actually work.
    - Allow extension of individual grace periods.
    - Refactor the non-reclaim inode radix tree walking code to remove a
      bunch of stupid little functions and straighten out the
      inconsistent naming schemes.
    - Fix a bug in speculative preallocation where we measured a new
      allocation based on the last extent mapping in the file instead of
      looking farther for the last contiguous space allocation.
    - Force delalloc writes to unwritten extents.  This closes a
      stale disk contents exposure vector if the system goes down before
      the write completes.
    - More lockdep whackamole.