On 7/20/07, Denis Cheng <crquan@xxxxxxxxx> wrote:Why clear all page? IMHO,only count bytes need to be cleared.
Signed-off-by: Denis Cheng <crquan@xxxxxxxxx>
---
I'm not very sure zero_user_page is correctly used here,
so please feel free to give comments.
and why here it uses KM_USER1 not KM_USER0, What are the differences?
fs/fuse/dev.c | 8 +++-----
1 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 3ad22be..e55b5e8 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -533,11 +533,9 @@ static int fuse_copy_do(struct fuse_copy_state *cs, void **val, unsigned *size)
static int fuse_copy_page(struct fuse_copy_state *cs, struct page *page,
unsigned offset, unsigned count, int zeroing)
{
- if (page && zeroing && count < PAGE_SIZE) {
- void *mapaddr = kmap_atomic(page, KM_USER1);
- memset(mapaddr, 0, PAGE_SIZE);
- kunmap_atomic(mapaddr, KM_USER1);
- }
+ if (page && zeroing && count < PAGE_SIZE)
+ zero_user_page(page, 0, PAGE_SIZE, KM_USER1);
+-
while (count) {
int err;
if (!cs->len && (err = fuse_copy_fill(cs)))