From: ira.weiny@intel.com
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "Ira Weiny" <ira.weiny@intel.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Dave Hansen" <dave.hansen@intel.com>,
"Matthew Wilcox" <willy@infradead.org>,
"Christoph Hellwig" <hch@infradead.org>,
"Dan Williams" <dan.j.williams@intel.com>,
"Al Viro" <viro@zeniv.linux.org.uk>,
"Eric Biggers" <ebiggers@kernel.org>,
"Luis Chamberlain" <mcgrof@kernel.org>,
"Patrik Jakobsson" <patrik.r.jakobsson@gmail.com>,
"Jani Nikula" <jani.nikula@linux.intel.com>,
"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
"David Howells" <dhowells@redhat.com>, "Chris Mason" <clm@fb.com>,
"Josef Bacik" <josef@toxicpanda.com>,
"David Sterba" <dsterba@suse.com>,
"Steve French" <sfrench@samba.org>,
"Jaegeuk Kim" <jaegeuk@kernel.org>,
"Chao Yu" <yuchao0@huawei.com>,
"Nicolas Pitre" <nico@fluxnic.net>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
"Brian King" <brking@us.ibm.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Jérôme Glisse" <jglisse@redhat.com>,
"Kirti Wankhede" <kwankhede@nvidia.com>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: [PATCH 08/17] fs/hfsplus: Convert to mem*_page()
Date: Mon, 23 Nov 2020 22:07:46 -0800 [thread overview]
Message-ID: <20201124060755.1405602-9-ira.weiny@intel.com> (raw)
In-Reply-To: <20201124060755.1405602-1-ira.weiny@intel.com>
From: Ira Weiny <ira.weiny@intel.com>
Remove the pattern of kmap/mem*/kunmap in favor of the new mem*_page()
functions which handle the kmap'ing correctly for us.
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
---
fs/hfsplus/bnode.c | 53 +++++++++++++---------------------------------
1 file changed, 15 insertions(+), 38 deletions(-)
diff --git a/fs/hfsplus/bnode.c b/fs/hfsplus/bnode.c
index 177fae4e6581..c4347b1cb36f 100644
--- a/fs/hfsplus/bnode.c
+++ b/fs/hfsplus/bnode.c
@@ -29,14 +29,12 @@ void hfs_bnode_read(struct hfs_bnode *node, void *buf, int off, int len)
off &= ~PAGE_MASK;
l = min_t(int, len, PAGE_SIZE - off);
- memcpy(buf, kmap(*pagep) + off, l);
- kunmap(*pagep);
+ memcpy_from_page(buf, *pagep, off, l);
while ((len -= l) != 0) {
buf += l;
l = min_t(int, len, PAGE_SIZE);
- memcpy(buf, kmap(*++pagep), l);
- kunmap(*pagep);
+ memcpy_from_page(buf, *++pagep, 0, l);
}
}
@@ -82,16 +80,14 @@ void hfs_bnode_write(struct hfs_bnode *node, void *buf, int off, int len)
off &= ~PAGE_MASK;
l = min_t(int, len, PAGE_SIZE - off);
- memcpy(kmap(*pagep) + off, buf, l);
+ memcpy_to_page(*pagep, off, buf, l);
set_page_dirty(*pagep);
- kunmap(*pagep);
while ((len -= l) != 0) {
buf += l;
l = min_t(int, len, PAGE_SIZE);
- memcpy(kmap(*++pagep), buf, l);
+ memcpy_to_page(*++pagep, 0, buf, l);
set_page_dirty(*pagep);
- kunmap(*pagep);
}
}
@@ -112,15 +108,13 @@ void hfs_bnode_clear(struct hfs_bnode *node, int off, int len)
off &= ~PAGE_MASK;
l = min_t(int, len, PAGE_SIZE - off);
- memset(kmap(*pagep) + off, 0, l);
+ memzero_page(*pagep, off, l);
set_page_dirty(*pagep);
- kunmap(*pagep);
while ((len -= l) != 0) {
l = min_t(int, len, PAGE_SIZE);
- memset(kmap(*++pagep), 0, l);
+ memzero_page(*++pagep, 0, l);
set_page_dirty(*pagep);
- kunmap(*pagep);
}
}
@@ -142,17 +136,13 @@ void hfs_bnode_copy(struct hfs_bnode *dst_node, int dst,
if (src == dst) {
l = min_t(int, len, PAGE_SIZE - src);
- memcpy(kmap(*dst_page) + src, kmap(*src_page) + src, l);
- kunmap(*src_page);
+ memcpy_page(*dst_page, src, *src_page, src, l);
set_page_dirty(*dst_page);
- kunmap(*dst_page);
while ((len -= l) != 0) {
l = min_t(int, len, PAGE_SIZE);
- memcpy(kmap(*++dst_page), kmap(*++src_page), l);
- kunmap(*src_page);
+ memcpy_page(*++dst_page, 0, *++src_page, 0, l);
set_page_dirty(*dst_page);
- kunmap(*dst_page);
}
} else {
void *src_ptr, *dst_ptr;
@@ -202,21 +192,16 @@ void hfs_bnode_move(struct hfs_bnode *node, int dst, int src, int len)
if (src == dst) {
while (src < len) {
- memmove(kmap(*dst_page), kmap(*src_page), src);
- kunmap(*src_page);
+ memmove_page(*dst_page, 0, *src_page, 0, src);
set_page_dirty(*dst_page);
- kunmap(*dst_page);
len -= src;
src = PAGE_SIZE;
src_page--;
dst_page--;
}
src -= len;
- memmove(kmap(*dst_page) + src,
- kmap(*src_page) + src, len);
- kunmap(*src_page);
+ memmove_page(*dst_page, src, *src_page, src, len);
set_page_dirty(*dst_page);
- kunmap(*dst_page);
} else {
void *src_ptr, *dst_ptr;
@@ -251,19 +236,13 @@ void hfs_bnode_move(struct hfs_bnode *node, int dst, int src, int len)
if (src == dst) {
l = min_t(int, len, PAGE_SIZE - src);
- memmove(kmap(*dst_page) + src,
- kmap(*src_page) + src, l);
- kunmap(*src_page);
+ memmove_page(*dst_page, src, *src_page, src, l);
set_page_dirty(*dst_page);
- kunmap(*dst_page);
while ((len -= l) != 0) {
l = min_t(int, len, PAGE_SIZE);
- memmove(kmap(*++dst_page),
- kmap(*++src_page), l);
- kunmap(*src_page);
+ memmove_page(*++dst_page, 0, *++src_page, 0, l);
set_page_dirty(*dst_page);
- kunmap(*dst_page);
}
} else {
void *src_ptr, *dst_ptr;
@@ -593,14 +572,12 @@ struct hfs_bnode *hfs_bnode_create(struct hfs_btree *tree, u32 num)
}
pagep = node->page;
- memset(kmap(*pagep) + node->page_offset, 0,
- min_t(int, PAGE_SIZE, tree->node_size));
+ memzero_page(*pagep, node->page_offset,
+ min_t(int, PAGE_SIZE, tree->node_size));
set_page_dirty(*pagep);
- kunmap(*pagep);
for (i = 1; i < tree->pages_per_bnode; i++) {
- memset(kmap(*++pagep), 0, PAGE_SIZE);
+ memzero_page(*++pagep, 0, PAGE_SIZE);
set_page_dirty(*pagep);
- kunmap(*pagep);
}
clear_bit(HFS_BNODE_NEW, &node->flags);
wake_up(&node->lock_wq);
--
2.28.0.rc0.12.gb6a658bd00c9
next prev parent reply other threads:[~2020-11-24 6:08 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-24 6:07 [PATCH 00/17] kmap: Create mem*_page interfaces ira.weiny
2020-11-24 6:07 ` [PATCH 01/17] mm/highmem: Lift memcpy_[to|from]_page and memset_page to core ira.weiny
2020-11-24 14:19 ` Matthew Wilcox
2020-11-24 19:21 ` Ira Weiny
2020-11-24 20:20 ` Matthew Wilcox
[not found] ` <160648238432.10416.12405581766428273347@jlahtine-mobl.ger.corp.intel.com>
2020-11-27 13:20 ` Matthew Wilcox
[not found] ` <160672815223.3453.2374529656870007787@jlahtine-mobl.ger.corp.intel.com>
2020-12-03 18:25 ` Ira Weiny
2020-11-24 6:07 ` [PATCH 02/17] drivers/firmware_loader: Use new memcpy_[to|from]_page() ira.weiny
2020-11-24 6:07 ` [PATCH 03/17] drivers/gpu: Convert to mem*_page() ira.weiny
[not found] ` <160648211578.10416.3269409785516897908@jlahtine-mobl.ger.corp.intel.com>
2020-12-04 16:05 ` Ira Weiny
2020-12-04 22:33 ` Thomas Gleixner
2020-12-07 6:46 ` Ira Weiny
2020-12-07 16:19 ` Thomas Gleixner
2020-11-24 6:07 ` [PATCH 04/17] fs/afs: Convert to memzero_page() ira.weiny
2020-11-24 6:07 ` [PATCH 05/17] fs/btrfs: " ira.weiny
2020-11-24 14:12 ` David Sterba
2020-11-24 19:25 ` Ira Weiny
2020-11-24 6:07 ` [PATCH 06/17] fs/hfs: Convert to mem*_page() interface ira.weiny
2020-11-24 6:07 ` [PATCH 07/17] fs/cifs: Convert to memcpy_page() ira.weiny
2020-11-24 6:07 ` ira.weiny [this message]
2020-11-24 6:07 ` [PATCH 09/17] fs/f2fs: Remove f2fs_copy_page() ira.weiny
2020-11-25 3:27 ` Chao Yu
2020-11-24 6:07 ` [PATCH 10/17] fs/freevxfs: Use memcpy_to_page() ira.weiny
2020-11-24 6:07 ` [PATCH 11/17] fs/reiserfs: Use memcpy_from_page() ira.weiny
2020-11-24 6:07 ` [PATCH 12/17] fs/cramfs: " ira.weiny
2020-11-24 15:20 ` Nicolas Pitre
2020-11-24 6:07 ` [PATCH 13/17] drivers/target: Convert to mem*_page() ira.weiny
2020-11-24 6:07 ` [PATCH 14/17] drivers/scsi: Use memcpy_to_page() ira.weiny
2020-11-24 6:07 ` [PATCH 15/17] drivers/staging: Use memcpy_to/from_page() ira.weiny
2020-11-24 6:07 ` [PATCH 16/17] lib: Use mempcy_to/from_page() ira.weiny
2020-11-24 6:07 ` [PATCH 17/17] samples: Use memcpy_to/from_page() ira.weiny
2020-12-04 10:18 ` [PATCH 04/17] fs/afs: Convert to memzero_page() David Howells
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201124060755.1405602-9-ira.weiny@intel.com \
--to=ira.weiny@intel.com \
--cc=akpm@linux-foundation.org \
--cc=ast@kernel.org \
--cc=brking@us.ibm.com \
--cc=clm@fb.com \
--cc=dan.j.williams@intel.com \
--cc=daniel@iogearbox.net \
--cc=dave.hansen@intel.com \
--cc=dhowells@redhat.com \
--cc=dsterba@suse.com \
--cc=ebiggers@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=hch@infradead.org \
--cc=jaegeuk@kernel.org \
--cc=jani.nikula@linux.intel.com \
--cc=jglisse@redhat.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=josef@toxicpanda.com \
--cc=kwankhede@nvidia.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=mcgrof@kernel.org \
--cc=nico@fluxnic.net \
--cc=patrik.r.jakobsson@gmail.com \
--cc=rodrigo.vivi@intel.com \
--cc=sfrench@samba.org \
--cc=tglx@linutronix.de \
--cc=viro@zeniv.linux.org.uk \
--cc=willy@infradead.org \
--cc=yuchao0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).