New code for 5.10:
- Don't WARN_ON weird states that unprivileged users can create.
- Don't invalidate page cache when direct writes want to fall back to
  buffered.
- Fix some problems when readahead ios fail.
- Fix a problem where inline data pages weren't getting flushed during
  an unshare operation.
- Rework iomap to support arbitrarily many blocks per page in
  preparation to support THP for the page cache.
- Fix a bug in the blocksize < pagesize buffered io path where we could
  fail to initialize the many-blocks-per-page uptodate bitmap correctly
  when the backing page is actually up to date.  This could cause us to
  forget to write out dirty pages.
- Split out the generic_write_sync at the end of the directio write path
  so that btrfs can drop the inode lock before sync'ing the file.
- Call inode_dio_end before trying to sync the file after a O_DSYNC
  direct write (instead of afterwards) to match the behavior of the
  old directio code.