btrfs direct-io using iomap
From: | Goldwyn Rodrigues <rgoldwyn-AT-suse.de> | |
To: | linux-btrfs-AT-vger.kernel.org | |
Subject: | [PATCH 0/5 v2] btrfs direct-io using iomap | |
Date: | Mon, 25 Nov 2019 21:14:51 -0600 | |
Message-ID: | <20191126031456.12150-1-rgoldwyn@suse.de> | |
Cc: | linux-fsdevel-AT-vger.kernel.org, hch-AT-infradead.org, darrick.wong-AT-oracle.com, fdmanana-AT-kernel.org | |
Archive-link: | Article |
This is an effort to use iomap for direct I/O in btrfs. This would change the call from __blockdev_direct_io() to iomap_dio_rw(). The main objective is to lose the buffer head and use bio defined by iomap code, and hopefully to use more of generic-FS codebase. These patches are based on xfs/iomap-for-next, though I tested it against the patches on xfs/iomap-for-next on top of v5.4 (there are no changes to existing iomap patches). I have tested it against xfstests/btrfs. Changes since v1 - Incorporated back the efficiency change for inode locking - Review comments about coding style and git comments - Merge related patches into one - Direct read to go through btrfs_direct_IO() - Removal of no longer used function dio_end_io() fs/btrfs/ctree.h | 2 fs/btrfs/extent_io.c | 33 ++++----- fs/btrfs/file.c | 15 +++- fs/btrfs/inode.c | 171 +++++++++++++++++++++++--------------------------- fs/direct-io.c | 19 ----- fs/iomap/direct-io.c | 14 ++-- include/linux/fs.h | 3 include/linux/iomap.h | 2 mm/filemap.c | 13 ++- 9 files changed, 131 insertions(+), 141 deletions(-) -- Goldwyn