diff options
author | Steve French <sfrench@us.ibm.com> | 2008-02-06 11:04:00 -0500 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2008-02-06 11:04:00 -0500 |
commit | f315ccb3e679f271583f2a4f463ad9b65665b751 (patch) | |
tree | 44eb52102587d7b0bb592464cef6ec04bcac8b90 /fs/ntfs | |
parent | ead03e30b050d6dda769e7e9b071c5fa720bf8d2 (diff) | |
parent | 551e4fb2465b87de9d4aa1669b27d624435443bb (diff) |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'fs/ntfs')
-rw-r--r-- | fs/ntfs/aops.c | 20 | ||||
-rw-r--r-- | fs/ntfs/compress.c | 2 | ||||
-rw-r--r-- | fs/ntfs/file.c | 32 | ||||
-rw-r--r-- | fs/ntfs/malloc.h | 3 |
4 files changed, 28 insertions, 29 deletions
diff --git a/fs/ntfs/aops.c b/fs/ntfs/aops.c index ad87cb01299..00e9ccde8e4 100644 --- a/fs/ntfs/aops.c +++ b/fs/ntfs/aops.c | |||
@@ -87,13 +87,17 @@ static void ntfs_end_buffer_async_read(struct buffer_head *bh, int uptodate) | |||
87 | /* Check for the current buffer head overflowing. */ | 87 | /* Check for the current buffer head overflowing. */ |
88 | if (unlikely(file_ofs + bh->b_size > init_size)) { | 88 | if (unlikely(file_ofs + bh->b_size > init_size)) { |
89 | int ofs; | 89 | int ofs; |
90 | void *kaddr; | ||
90 | 91 | ||
91 | ofs = 0; | 92 | ofs = 0; |
92 | if (file_ofs < init_size) | 93 | if (file_ofs < init_size) |
93 | ofs = init_size - file_ofs; | 94 | ofs = init_size - file_ofs; |
94 | local_irq_save(flags); | 95 | local_irq_save(flags); |
95 | zero_user_page(page, bh_offset(bh) + ofs, | 96 | kaddr = kmap_atomic(page, KM_BIO_SRC_IRQ); |
96 | bh->b_size - ofs, KM_BIO_SRC_IRQ); | 97 | memset(kaddr + bh_offset(bh) + ofs, 0, |
98 | bh->b_size - ofs); | ||
99 | flush_dcache_page(page); | ||
100 | kunmap_atomic(kaddr, KM_BIO_SRC_IRQ); | ||
97 | local_irq_restore(flags); | 101 | local_irq_restore(flags); |
98 | } | 102 | } |
99 | } else { | 103 | } else { |
@@ -334,7 +338,7 @@ handle_hole: | |||
334 | bh->b_blocknr = -1UL; | 338 | bh->b_blocknr = -1UL; |
335 | clear_buffer_mapped(bh); | 339 | clear_buffer_mapped(bh); |
336 | handle_zblock: | 340 | handle_zblock: |
337 | zero_user_page(page, i * blocksize, blocksize, KM_USER0); | 341 | zero_user(page, i * blocksize, blocksize); |
338 | if (likely(!err)) | 342 | if (likely(!err)) |
339 | set_buffer_uptodate(bh); | 343 | set_buffer_uptodate(bh); |
340 | } while (i++, iblock++, (bh = bh->b_this_page) != head); | 344 | } while (i++, iblock++, (bh = bh->b_this_page) != head); |
@@ -410,7 +414,7 @@ retry_readpage: | |||
410 | /* Is the page fully outside i_size? (truncate in progress) */ | 414 | /* Is the page fully outside i_size? (truncate in progress) */ |
411 | if (unlikely(page->index >= (i_size + PAGE_CACHE_SIZE - 1) >> | 415 | if (unlikely(page->index >= (i_size + PAGE_CACHE_SIZE - 1) >> |
412 | PAGE_CACHE_SHIFT)) { | 416 | PAGE_CACHE_SHIFT)) { |
413 | zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); | 417 | zero_user(page, 0, PAGE_CACHE_SIZE); |
414 | ntfs_debug("Read outside i_size - truncated?"); | 418 | ntfs_debug("Read outside i_size - truncated?"); |
415 | goto done; | 419 | goto done; |
416 | } | 420 | } |
@@ -459,7 +463,7 @@ retry_readpage: | |||
459 | * ok to ignore the compressed flag here. | 463 | * ok to ignore the compressed flag here. |
460 | */ | 464 | */ |
461 | if (unlikely(page->index > 0)) { | 465 | if (unlikely(page->index > 0)) { |
462 | zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); | 466 | zero_user(page, 0, PAGE_CACHE_SIZE); |
463 | goto done; | 467 | goto done; |
464 | } | 468 | } |
465 | if (!NInoAttr(ni)) | 469 | if (!NInoAttr(ni)) |
@@ -788,8 +792,7 @@ lock_retry_remap: | |||
788 | if (err == -ENOENT || lcn == LCN_ENOENT) { | 792 | if (err == -ENOENT || lcn == LCN_ENOENT) { |
789 | bh->b_blocknr = -1; | 793 | bh->b_blocknr = -1; |
790 | clear_buffer_dirty(bh); | 794 | clear_buffer_dirty(bh); |
791 | zero_user_page(page, bh_offset(bh), blocksize, | 795 | zero_user(page, bh_offset(bh), blocksize); |
792 | KM_USER0); | ||
793 | set_buffer_uptodate(bh); | 796 | set_buffer_uptodate(bh); |
794 | err = 0; | 797 | err = 0; |
795 | continue; | 798 | continue; |
@@ -1414,8 +1417,7 @@ retry_writepage: | |||
1414 | if (page->index >= (i_size >> PAGE_CACHE_SHIFT)) { | 1417 | if (page->index >= (i_size >> PAGE_CACHE_SHIFT)) { |
1415 | /* The page straddles i_size. */ | 1418 | /* The page straddles i_size. */ |
1416 | unsigned int ofs = i_size & ~PAGE_CACHE_MASK; | 1419 | unsigned int ofs = i_size & ~PAGE_CACHE_MASK; |
1417 | zero_user_page(page, ofs, PAGE_CACHE_SIZE - ofs, | 1420 | zero_user_segment(page, ofs, PAGE_CACHE_SIZE); |
1418 | KM_USER0); | ||
1419 | } | 1421 | } |
1420 | /* Handle mst protected attributes. */ | 1422 | /* Handle mst protected attributes. */ |
1421 | if (NInoMstProtected(ni)) | 1423 | if (NInoMstProtected(ni)) |
diff --git a/fs/ntfs/compress.c b/fs/ntfs/compress.c index d1619d05eb2..33ff314cc50 100644 --- a/fs/ntfs/compress.c +++ b/fs/ntfs/compress.c | |||
@@ -565,7 +565,7 @@ int ntfs_read_compressed_block(struct page *page) | |||
565 | if (xpage >= max_page) { | 565 | if (xpage >= max_page) { |
566 | kfree(bhs); | 566 | kfree(bhs); |
567 | kfree(pages); | 567 | kfree(pages); |
568 | zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); | 568 | zero_user(page, 0, PAGE_CACHE_SIZE); |
569 | ntfs_debug("Compressed read outside i_size - truncated?"); | 569 | ntfs_debug("Compressed read outside i_size - truncated?"); |
570 | SetPageUptodate(page); | 570 | SetPageUptodate(page); |
571 | unlock_page(page); | 571 | unlock_page(page); |
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c index 6cd08dfdc2e..3c5550cd11d 100644 --- a/fs/ntfs/file.c +++ b/fs/ntfs/file.c | |||
@@ -607,8 +607,8 @@ do_next_page: | |||
607 | ntfs_submit_bh_for_read(bh); | 607 | ntfs_submit_bh_for_read(bh); |
608 | *wait_bh++ = bh; | 608 | *wait_bh++ = bh; |
609 | } else { | 609 | } else { |
610 | zero_user_page(page, bh_offset(bh), | 610 | zero_user(page, bh_offset(bh), |
611 | blocksize, KM_USER0); | 611 | blocksize); |
612 | set_buffer_uptodate(bh); | 612 | set_buffer_uptodate(bh); |
613 | } | 613 | } |
614 | } | 614 | } |
@@ -683,9 +683,8 @@ map_buffer_cached: | |||
683 | ntfs_submit_bh_for_read(bh); | 683 | ntfs_submit_bh_for_read(bh); |
684 | *wait_bh++ = bh; | 684 | *wait_bh++ = bh; |
685 | } else { | 685 | } else { |
686 | zero_user_page(page, | 686 | zero_user(page, bh_offset(bh), |
687 | bh_offset(bh), | 687 | blocksize); |
688 | blocksize, KM_USER0); | ||
689 | set_buffer_uptodate(bh); | 688 | set_buffer_uptodate(bh); |
690 | } | 689 | } |
691 | } | 690 | } |
@@ -703,8 +702,8 @@ map_buffer_cached: | |||
703 | */ | 702 | */ |
704 | if (bh_end <= pos || bh_pos >= end) { | 703 | if (bh_end <= pos || bh_pos >= end) { |
705 | if (!buffer_uptodate(bh)) { | 704 | if (!buffer_uptodate(bh)) { |
706 | zero_user_page(page, bh_offset(bh), | 705 | zero_user(page, bh_offset(bh), |
707 | blocksize, KM_USER0); | 706 | blocksize); |
708 | set_buffer_uptodate(bh); | 707 | set_buffer_uptodate(bh); |
709 | } | 708 | } |
710 | mark_buffer_dirty(bh); | 709 | mark_buffer_dirty(bh); |
@@ -743,8 +742,7 @@ map_buffer_cached: | |||
743 | if (!buffer_uptodate(bh)) | 742 | if (!buffer_uptodate(bh)) |
744 | set_buffer_uptodate(bh); | 743 | set_buffer_uptodate(bh); |
745 | } else if (!buffer_uptodate(bh)) { | 744 | } else if (!buffer_uptodate(bh)) { |
746 | zero_user_page(page, bh_offset(bh), blocksize, | 745 | zero_user(page, bh_offset(bh), blocksize); |
747 | KM_USER0); | ||
748 | set_buffer_uptodate(bh); | 746 | set_buffer_uptodate(bh); |
749 | } | 747 | } |
750 | continue; | 748 | continue; |
@@ -868,8 +866,8 @@ rl_not_mapped_enoent: | |||
868 | if (!buffer_uptodate(bh)) | 866 | if (!buffer_uptodate(bh)) |
869 | set_buffer_uptodate(bh); | 867 | set_buffer_uptodate(bh); |
870 | } else if (!buffer_uptodate(bh)) { | 868 | } else if (!buffer_uptodate(bh)) { |
871 | zero_user_page(page, bh_offset(bh), | 869 | zero_user(page, bh_offset(bh), |
872 | blocksize, KM_USER0); | 870 | blocksize); |
873 | set_buffer_uptodate(bh); | 871 | set_buffer_uptodate(bh); |
874 | } | 872 | } |
875 | continue; | 873 | continue; |
@@ -1128,8 +1126,8 @@ rl_not_mapped_enoent: | |||
1128 | 1126 | ||
1129 | if (likely(bh_pos < initialized_size)) | 1127 | if (likely(bh_pos < initialized_size)) |
1130 | ofs = initialized_size - bh_pos; | 1128 | ofs = initialized_size - bh_pos; |
1131 | zero_user_page(page, bh_offset(bh) + ofs, | 1129 | zero_user_segment(page, bh_offset(bh) + ofs, |
1132 | blocksize - ofs, KM_USER0); | 1130 | blocksize); |
1133 | } | 1131 | } |
1134 | } else /* if (unlikely(!buffer_uptodate(bh))) */ | 1132 | } else /* if (unlikely(!buffer_uptodate(bh))) */ |
1135 | err = -EIO; | 1133 | err = -EIO; |
@@ -1269,8 +1267,8 @@ rl_not_mapped_enoent: | |||
1269 | if (PageUptodate(page)) | 1267 | if (PageUptodate(page)) |
1270 | set_buffer_uptodate(bh); | 1268 | set_buffer_uptodate(bh); |
1271 | else { | 1269 | else { |
1272 | zero_user_page(page, bh_offset(bh), | 1270 | zero_user(page, bh_offset(bh), |
1273 | blocksize, KM_USER0); | 1271 | blocksize); |
1274 | set_buffer_uptodate(bh); | 1272 | set_buffer_uptodate(bh); |
1275 | } | 1273 | } |
1276 | } | 1274 | } |
@@ -1330,7 +1328,7 @@ err_out: | |||
1330 | len = PAGE_CACHE_SIZE; | 1328 | len = PAGE_CACHE_SIZE; |
1331 | if (len > bytes) | 1329 | if (len > bytes) |
1332 | len = bytes; | 1330 | len = bytes; |
1333 | zero_user_page(*pages, 0, len, KM_USER0); | 1331 | zero_user(*pages, 0, len); |
1334 | } | 1332 | } |
1335 | goto out; | 1333 | goto out; |
1336 | } | 1334 | } |
@@ -1451,7 +1449,7 @@ err_out: | |||
1451 | len = PAGE_CACHE_SIZE; | 1449 | len = PAGE_CACHE_SIZE; |
1452 | if (len > bytes) | 1450 | if (len > bytes) |
1453 | len = bytes; | 1451 | len = bytes; |
1454 | zero_user_page(*pages, 0, len, KM_USER0); | 1452 | zero_user(*pages, 0, len); |
1455 | } | 1453 | } |
1456 | goto out; | 1454 | goto out; |
1457 | } | 1455 | } |
diff --git a/fs/ntfs/malloc.h b/fs/ntfs/malloc.h index e38e402e410..cd0be3f5c3c 100644 --- a/fs/ntfs/malloc.h +++ b/fs/ntfs/malloc.h | |||
@@ -85,8 +85,7 @@ static inline void *ntfs_malloc_nofs_nofail(unsigned long size) | |||
85 | 85 | ||
86 | static inline void ntfs_free(void *addr) | 86 | static inline void ntfs_free(void *addr) |
87 | { | 87 | { |
88 | if (likely(((unsigned long)addr < VMALLOC_START) || | 88 | if (!is_vmalloc_addr(addr)) { |
89 | ((unsigned long)addr >= VMALLOC_END ))) { | ||
90 | kfree(addr); | 89 | kfree(addr); |
91 | /* free_page((unsigned long)addr); */ | 90 | /* free_page((unsigned long)addr); */ |
92 | return; | 91 | return; |