Use zero_user_page() instead of open-coding it. Also replace the (mostly) redundant zero_page() function. Signed-off-by: Nate Diller <nate.diller@xxxxxxxxx> --- diff -urpN -X dontdiff linux-2.6.21-rc6-mm1/fs/reiser4/plugin/file/cryptcompress.c linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/file/cryptcompress.c --- linux-2.6.21-rc6-mm1/fs/reiser4/plugin/file/cryptcompress.c 2007-04-10 17:15:04.000000000 -0700 +++ linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/file/cryptcompress.c 2007-04-10 18:35:44.000000000 -0700 @@ -1897,7 +1897,6 @@ static int write_hole(struct inode *inode, reiser4_cluster_t * clust, loff_t file_off, loff_t to_file) { - char *data; int result = 0; unsigned cl_off, cl_count = 0; unsigned to_pg, pg_off; @@ -1934,10 +1933,7 @@ write_hole(struct inode *inode, reiser4_ to_pg = min_count(PAGE_CACHE_SIZE - pg_off, cl_count); lock_page(page); - data = kmap_atomic(page, KM_USER0); - memset(data + pg_off, 0, to_pg); - flush_dcache_page(page); - kunmap_atomic(data, KM_USER0); + zero_user_page(page, pg_off, to_pg); SetPageUptodate(page); unlock_page(page); @@ -2167,7 +2163,6 @@ read_some_cluster_pages(struct inode *in if (clust->nr_pages) { int off; - char *data; struct page * pg; assert("edward-1419", clust->pages != NULL); pg = clust->pages[clust->nr_pages - 1]; @@ -2175,10 +2170,7 @@ read_some_cluster_pages(struct inode *in off = off_to_pgoff(win->off+win->count+win->delta); if (off) { lock_page(pg); - data = kmap_atomic(pg, KM_USER0); - memset(data + off, 0, PAGE_CACHE_SIZE - off); - flush_dcache_page(pg); - kunmap_atomic(data, KM_USER0); + zero_user_page(pg, off, PAGE_CACHE_SIZE - off); unlock_page(pg); } } @@ -2217,20 +2209,15 @@ read_some_cluster_pages(struct inode *in (count_to_nrpages(inode->i_size) <= pg->index)) { /* .. and appended, so set zeroes to the rest */ - char *data; int offset; lock_page(pg); - data = kmap_atomic(pg, KM_USER0); - assert("edward-1260", count_to_nrpages(win->off + win->count + win->delta) - 1 == i); offset = off_to_pgoff(win->off + win->count + win->delta); - memset(data + offset, 0, PAGE_CACHE_SIZE - offset); - flush_dcache_page(pg); - kunmap_atomic(data, KM_USER0); + zero_user_page(pg, offset, PAGE_CACHE_SIZE - offset); unlock_page(pg); /* still not uptodate */ break; diff -urpN -X dontdiff linux-2.6.21-rc6-mm1/fs/reiser4/plugin/file/file.c linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/file/file.c --- linux-2.6.21-rc6-mm1/fs/reiser4/plugin/file/file.c 2007-04-10 17:15:04.000000000 -0700 +++ linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/file/file.c 2007-04-10 18:35:44.000000000 -0700 @@ -433,7 +433,6 @@ static int shorten_file(struct inode *in struct page *page; int padd_from; unsigned long index; - char *kaddr; unix_file_info_t *uf_info; /* @@ -523,10 +522,7 @@ static int shorten_file(struct inode *in lock_page(page); assert("vs-1066", PageLocked(page)); - kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + padd_from, 0, PAGE_CACHE_SIZE - padd_from); - flush_dcache_page(page); - kunmap_atomic(kaddr, KM_USER0); + zero_user_page(page, padd_from, PAGE_CACHE_SIZE - padd_from); unlock_page(page); page_cache_release(page); /* the below does up(sbinfo->delete_mutex). Do not get confused */ diff -urpN -X dontdiff linux-2.6.21-rc6-mm1/fs/reiser4/plugin/item/ctail.c linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/item/ctail.c --- linux-2.6.21-rc6-mm1/fs/reiser4/plugin/item/ctail.c 2007-04-10 17:15:04.000000000 -0700 +++ linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/item/ctail.c 2007-04-10 18:35:44.000000000 -0700 @@ -627,11 +627,7 @@ int do_readpage_ctail(struct inode * ino #endif case FAKE_DISK_CLUSTER: /* fill the page by zeroes */ - data = kmap_atomic(page, KM_USER0); - - memset(data, 0, PAGE_CACHE_SIZE); - flush_dcache_page(page); - kunmap_atomic(data, KM_USER0); + zero_user_page(page, 0, PAGE_CACHE_SIZE); SetPageUptodate(page); break; case PREP_DISK_CLUSTER: diff -urpN -X dontdiff linux-2.6.21-rc6-mm1/fs/reiser4/plugin/item/extent_file_ops.c linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/item/extent_file_ops.c --- linux-2.6.21-rc6-mm1/fs/reiser4/plugin/item/extent_file_ops.c 2007-04-10 18:05:52.000000000 -0700 +++ linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/item/extent_file_ops.c 2007-04-10 18:35:44.000000000 -0700 @@ -1083,17 +1083,6 @@ ssize_t reiser4_write_extent(struct file return (count - left) ? (count - left) : -EFAULT; } -static inline void zero_page(struct page *page) -{ - char *kaddr = kmap_atomic(page, KM_USER0); - - memset(kaddr, 0, PAGE_CACHE_SIZE); - flush_dcache_page(page); - kunmap_atomic(kaddr, KM_USER0); - SetPageUptodate(page); - unlock_page(page); -} - int reiser4_do_readpage_extent(reiser4_extent * ext, reiser4_block_nr pos, struct page *page) { @@ -1115,7 +1104,9 @@ int reiser4_do_readpage_extent(reiser4_e */ j = jfind(mapping, index); if (j == NULL) { - zero_page(page); + zero_user_page(page, 0, PAGE_CACHE_SIZE); + SetPageUptodate(page); + unlock_page(page); return 0; } spin_lock_jnode(j); @@ -1128,7 +1119,9 @@ int reiser4_do_readpage_extent(reiser4_e block = *jnode_get_io_block(j); spin_unlock_jnode(j); if (block == 0) { - zero_page(page); + zero_user_page(page, 0, PAGE_CACHE_SIZE); + SetPageUptodate(page); + unlock_page(page); jput(j); return 0; } diff -urpN -X dontdiff linux-2.6.21-rc6-mm1/fs/reiser4/plugin/item/tail.c linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/item/tail.c --- linux-2.6.21-rc6-mm1/fs/reiser4/plugin/item/tail.c 2007-04-10 17:15:04.000000000 -0700 +++ linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/item/tail.c 2007-04-10 18:35:44.000000000 -0700 @@ -391,12 +391,8 @@ static int do_readpage_tail(uf_coord_t * } done: - if (mapped != PAGE_CACHE_SIZE) { - pagedata = kmap_atomic(page, KM_USER0); - memset(pagedata + mapped, 0, PAGE_CACHE_SIZE - mapped); - flush_dcache_page(page); - kunmap_atomic(pagedata, KM_USER0); - } + if (mapped != PAGE_CACHE_SIZE) + zero_user_page(page, mapped, PAGE_CACHE_SIZE - mapped); SetPageUptodate(page); out_unlock_page: unlock_page(page); - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html