New code for 5.16:
 * Bug fixes and cleanups for kernel memory allocation usage, this time
   without touching the mm code.
 * Refactor the log recovery mechanism that preserves held resources
   across a transaction roll so that it uses the exact same mechanism
   that we use for that during regular runtime.
 * Fix bugs and tighten checking around btree heights.
 * Remove more old typedefs.
 * Fix perag reference leaks when racing with growfs.
 * Remove unused fields from xfs_btree_cur.
 * Allocate various scrub structures on the heap to reduce stack usage.
 * Pack xfs_btree_cur fields and rearrange to support arbitrary heights.
 * Compute maximum possible heights for each btree height, and use that
   to set up slab caches for each btree type.
 * Finally remove kmem_zone_t, since these have always been struct
   kmem_cache on Linux.
 * Compact the structures used to coordinate work intent items.
 * Set up slab caches for each work intent item type.
 * Rename the "bmap_add_free" function to "free_extent_later", which
   more accurately describes what it does.
 * Fix corruption warning on unmount when a CoW preallocation covers a
   data fork delalloc reservation but then the CoW fails.
 * Add some more minor code improvements.