This patch series removes the use of buffer_heads from btrfs' super block read and write paths. It also converts the integrity-checking code to only work with pages and BIOs. Compared to buffer heads, this gives us a leaner call path, as the buffer_head code wraps around getting pages from the page-cache and adding them to BIOs to submit. The first patch removes buffer_heads from superblock reading. The second removes it from super_block writing and the subsequent patches remove the buffer_heads from the integrity check code. It's based on misc-next from Wednesday January 22, and doesn't show any regressions in xfstests to the baseline. Changes to v2: - Removed patch #1 again - Added Reviews from Josef - Re-visited page locking, but not changes, it retains the same locking scheme the buffer_heads had - Incroptorated comments from David regarding open-coding functions - For more details see the idividual patches. Changes to v1: - Added patch #1 - Converted sb reading and integrity checking to use the page cache - Added rationale behind the conversion to the commit messages. - For more details see the idividual patches. Johannes Thumshirn (5): btrfs: remove buffer heads from super block reading btrfs: remove use of buffer_heads from superblock writeout btrfs: remove btrfsic_submit_bh() btrfs: remove buffer_heads from btrfsic_process_written_block() btrfs: remove buffer_heads form superblock mirror integrity checking fs/btrfs/check-integrity.c | 218 +++++++++++-------------------------- fs/btrfs/check-integrity.h | 2 - fs/btrfs/disk-io.c | 200 +++++++++++++++++++++------------- fs/btrfs/disk-io.h | 4 +- fs/btrfs/volumes.c | 66 ++++++----- fs/btrfs/volumes.h | 2 - 6 files changed, 230 insertions(+), 262 deletions(-) -- 2.24.1
