[PATCH V2 0/8] btrfs: convert kmaps to core page calls

From: ira . weiny
Date: Wed Feb 10 2021 - 01:23:41 EST


From: Ira Weiny <ira.weiny@xxxxxxxxx>

Changes from V1:
Rework commit messages because they were very weak
Change 'fs/btrfs: X' to 'btrfs: x'
https://lore.kernel.org/lkml/20210209151442.GU1993@xxxxxxx/
Per Andrew
Split out changes to highmem.h
The addition memcpy, memmove, and memset page functions
The change from kmap_atomic to kmap_local_page
The addition of BUG_ON
The conversion of memzero_page to zero_user in iov_iter
Change BUG_ON to VM_BUG_ON
While we are refactoring adjust the line length down per Chaitany


There are many places where kmap/<operation>/kunmap patterns occur. We lift a
couple of these patterns to the core common functions and use them as well as
existing core functions 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.

Per the conversation on V1 it looks like Andrew would like this to go through
the btrfs tree. I think that is fine. The other users of
memcpy_[to|from]_page are probably not ready and I believe could be taken in an
early rc after David submits.

Is that ok with you David?

Thanks,
Ira

Ira Weiny (8):
mm/highmem: Lift memcpy_[to|from]_page to core
mm/highmem: Convert memcpy_[to|from]_page() to kmap_local_page()
mm/highmem: Introduce memcpy_page(), memmove_page(), and memset_page()
mm/highmem: Add VM_BUG_ON() to mem*_page() calls
iov_iter: Remove memzero_page() in favor of zero_user()
btrfs: use memcpy_[to|from]_page() and kmap_local_page()
btrfs: use copy_highpage() instead of 2 kmaps()
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 | 56 +++++++++++++++++++++++++++++++++++++++++
lib/iov_iter.c | 26 +++----------------
11 files changed, 89 insertions(+), 113 deletions(-)

--
2.28.0.rc0.12.gb6a658bd00c9