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