--- linux-2.6.18-274.17.1.el5.v13.i586/fs/ntfs/file.c.dist 2006-11-30 04:28:40.000000000 +0900 +++ linux-2.6.18-274.17.1.el5.v13.i586/fs/ntfs/file.c 2012-07-13 22:45:49.000000000 +0900 @@ -607,11 +607,8 @@ ntfs_submit_bh_for_read(bh); *wait_bh++ = bh; } else { - u8 *kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + bh_offset(bh), 0, + zero_user(page, bh_offset(bh), blocksize); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); set_buffer_uptodate(bh); } } @@ -686,12 +683,8 @@ ntfs_submit_bh_for_read(bh); *wait_bh++ = bh; } else { - u8 *kaddr = kmap_atomic(page, - KM_USER0); - memset(kaddr + bh_offset(bh), - 0, blocksize); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); + zero_user(page, bh_offset(bh), + blocksize); set_buffer_uptodate(bh); } } @@ -709,11 +702,8 @@ */ if (bh_end <= pos || bh_pos >= end) { if (!buffer_uptodate(bh)) { - u8 *kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + bh_offset(bh), 0, + zero_user(page, bh_offset(bh), blocksize); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); set_buffer_uptodate(bh); } mark_buffer_dirty(bh); @@ -752,10 +742,7 @@ if (!buffer_uptodate(bh)) set_buffer_uptodate(bh); } else if (!buffer_uptodate(bh)) { - u8 *kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + bh_offset(bh), 0, blocksize); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); + zero_user(page, bh_offset(bh), blocksize); set_buffer_uptodate(bh); } continue; @@ -879,11 +866,8 @@ if (!buffer_uptodate(bh)) set_buffer_uptodate(bh); } else if (!buffer_uptodate(bh)) { - u8 *kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + bh_offset(bh), 0, - blocksize); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); + zero_user(page, bh_offset(bh), + blocksize); set_buffer_uptodate(bh); } continue; @@ -1138,16 +1122,12 @@ * to zero the overflowing region. */ if (unlikely(bh_pos + blocksize > initialized_size)) { - u8 *kaddr; int ofs = 0; if (likely(bh_pos < initialized_size)) ofs = initialized_size - bh_pos; - kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + bh_offset(bh) + ofs, 0, - blocksize - ofs); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); + zero_user_segment(page, bh_offset(bh) + ofs, + blocksize); } } else /* if (unlikely(!buffer_uptodate(bh))) */ err = -EIO; @@ -1287,11 +1267,8 @@ if (PageUptodate(page)) set_buffer_uptodate(bh); else { - u8 *kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + bh_offset(bh), 0, + zero_user(page, bh_offset(bh), blocksize); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); set_buffer_uptodate(bh); } } @@ -1351,9 +1328,7 @@ len = PAGE_CACHE_SIZE; if (len > bytes) len = bytes; - kaddr = kmap_atomic(*pages, KM_USER0); - memset(kaddr, 0, len); - kunmap_atomic(kaddr, KM_USER0); + zero_user(*pages, 0, len); } goto out; } @@ -1474,9 +1449,7 @@ len = PAGE_CACHE_SIZE; if (len > bytes) len = bytes; - kaddr = kmap_atomic(*pages, KM_USER0); - memset(kaddr, 0, len); - kunmap_atomic(kaddr, KM_USER0); + zero_user(*pages, 0, len); } goto out; } --- linux-2.6.18-274.17.1.el5.v13.i586/fs/ntfs/compress.c.dist 2012-07-13 19:53:47.000000000 +0900 +++ linux-2.6.18-274.17.1.el5.v13.i586/fs/ntfs/compress.c 2012-07-13 22:45:49.000000000 +0900 @@ -565,7 +565,7 @@ if (xpage >= max_page) { kfree(bhs); kfree(pages); - zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); + zero_user(page, 0, PAGE_CACHE_SIZE); ntfs_debug("Compressed read outside i_size - truncated?"); SetPageUptodate(page); unlock_page(page); @@ -927,7 +927,7 @@ return 0; ntfs_debug("Failed. Returning error code %s.", err == -EOVERFLOW ? - "EOVERFLOW" : (!err ? "EIO" : "unkown error")); + "EOVERFLOW" : (!err ? "EIO" : "unknown error")); return err < 0 ? err : -EIO; read_err: --- linux-2.6.18-274.17.1.el5.v13.i586/fs/ntfs/aops.c.dist 2012-07-13 19:53:47.000000000 +0900 +++ linux-2.6.18-274.17.1.el5.v13.i586/fs/ntfs/aops.c 2012-07-13 22:50:07.000000000 +0900 @@ -241,7 +241,6 @@ rl = NULL; nr = i = 0; do { - u8 *kaddr; int err; if (unlikely(buffer_uptodate(bh))) @@ -336,10 +335,7 @@ bh->b_blocknr = -1UL; clear_buffer_mapped(bh); handle_zblock: - kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + i * blocksize, 0, blocksize); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); + zero_user(page, i * blocksize, blocksize); if (likely(!err)) set_buffer_uptodate(bh); } while (i++, iblock++, (bh = bh->b_this_page) != head); @@ -415,7 +411,7 @@ /* Is the page fully outside i_size? (truncate in progress) */ if (unlikely(page->index >= (i_size + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT)) { - zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); + zero_user(page, 0, PAGE_CACHE_SIZE); ntfs_debug("Read outside i_size - truncated?"); goto done; } @@ -464,10 +460,7 @@ * ok to ignore the compressed flag here. */ if (unlikely(page->index > 0)) { - kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr, 0, PAGE_CACHE_SIZE); - flush_dcache_page(page); - kunmap_atomic(kaddr, KM_USER0); + zero_user(page, 0, PAGE_CACHE_SIZE); goto done; } if (!NInoAttr(ni)) @@ -794,14 +787,9 @@ * uptodate so it can get discarded by the VM. */ if (err == -ENOENT || lcn == LCN_ENOENT) { - u8 *kaddr; - bh->b_blocknr = -1; clear_buffer_dirty(bh); - kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + bh_offset(bh), 0, blocksize); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); + zero_user(page, bh_offset(bh), blocksize); set_buffer_uptodate(bh); err = 0; continue; @@ -1426,10 +1414,7 @@ if (page->index >= (i_size >> PAGE_CACHE_SHIFT)) { /* The page straddles i_size. */ unsigned int ofs = i_size & ~PAGE_CACHE_MASK; - kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + ofs, 0, PAGE_CACHE_SIZE - ofs); - kunmap_atomic(kaddr, KM_USER0); - flush_dcache_page(page); + zero_user_segment(page, ofs, PAGE_CACHE_SIZE); } /* Handle mst protected attributes. */ if (NInoMstProtected(ni))