[PATCH 0/4] btrfs: Convert kmaps to core page calls

From: ira . weiny
Date: Fri Feb 05 2021 - 21:47:13 EST


From: Ira Weiny <ira.weiny@xxxxxxxxx>

There are many places where kmap/<operation>/kunmap patterns occur. We lift
these various patterns to core common functions and use them in the btrfs file
system. At the same time we convert those core functions to use
kmap_local_page() which is more efficient in those calls.

I think this is best accepted through Andrew's tree as it has the mem*_page
functions in it. But I'd like to get an ack from David or one of the other
btrfs maintainers before the btrfs patches go through.

There are a lot more kmap->kmap_local_page() conversions but kmap_local_page()
requires some care with the unmapping order and so I'm still reviewing those
changes because btrfs uses a lot of loops for it's kmaps.

Thanks,
Ira

Ira Weiny (4):
mm/highmem: Lift memcpy_[to|from]_page to core
fs/btrfs: Use memcpy_[to|from]_page()
fs/btrfs: Use copy_highpage() instead of 2 kmaps()
fs/btrfs: Convert to zero_user()

fs/btrfs/compression.c | 11 +++------
fs/btrfs/extent_io.c | 22 ++++-------------
fs/btrfs/inode.c | 33 ++++++++-----------------
fs/btrfs/lzo.c | 4 ++--
fs/btrfs/raid56.c | 10 +-------
fs/btrfs/reflink.c | 12 ++--------
fs/btrfs/send.c | 7 ++----
fs/btrfs/zlib.c | 10 +++-----
fs/btrfs/zstd.c | 11 +++------
include/linux/highmem.h | 53 +++++++++++++++++++++++++++++++++++++++++
lib/iov_iter.c | 26 +++-----------------
11 files changed, 86 insertions(+), 113 deletions(-)

--
2.28.0.rc0.12.gb6a658bd00c9