Hi, this reverts the direct io port to iomap infrastructure of btrfs merged in the first pull request. We found problems in invalidate page that don't seem to be fixable as regressions or without changing iomap code that would not affect other filesystems.
There are 4 patches reverted in total, but 3 of them are followup cleanups needed to revert a43a67a2d715540c13 cleanly. The result is the buffer head based implementation of direct io. There's one trivial conflict that git does not auto-resolve, in the address space operations readpages has been replaced by readahead and this change is in the context of the direct io callback diff. Reverts are not great, but under current circumstances I don't see better options. Please pull, thanks. ---------------------------------------------------------------- The following changes since commit 2166e5edce9ac1edf3b113d6091ef72fcac2d6c4: btrfs: fix space_info bytes_may_use underflow during space cache writeout (2020-05-28 14:01:53 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.8-part2-tag for you to fetch changes up to 55e20bd12a56e06c38b953177bb162cbbaa96004: Revert "btrfs: switch to iomap_dio_rw() for dio" (2020-06-14 01:19:02 +0200) ---------------------------------------------------------------- David Sterba (4): Revert "btrfs: split btrfs_direct_IO to read and write part" Revert "btrfs: remove BTRFS_INODE_READDIO_NEED_LOCK" Revert "fs: remove dio_end_io()" Revert "btrfs: switch to iomap_dio_rw() for dio" fs/btrfs/Kconfig | 1 - fs/btrfs/btrfs_inode.h | 18 +++ fs/btrfs/ctree.h | 4 - fs/btrfs/file.c | 97 +------------ fs/btrfs/inode.c | 379 +++++++++++++++++++++++++++++++------------------ fs/direct-io.c | 19 +++ include/linux/fs.h | 2 + 7 files changed, 286 insertions(+), 234 deletions(-)