From: Denis C. <cr...@gm...> - 2007-07-20 09:37:44
|
Signed-off-by: Denis Cheng <cr...@gm...> --- 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))) -- 1.5.2.2 |