aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r--fs/btrfs/file.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index f2a80e570a6c..24a19c2743ca 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -108,8 +108,6 @@ static noinline void btrfs_drop_pages(struct page **pages, size_t num_pages)
108{ 108{
109 size_t i; 109 size_t i;
110 for (i = 0; i < num_pages; i++) { 110 for (i = 0; i < num_pages; i++) {
111 if (!pages[i])
112 break;
113 /* page checked is some magic around finding pages that 111 /* page checked is some magic around finding pages that
114 * have been modified without going through btrfs_set_page_dirty 112 * have been modified without going through btrfs_set_page_dirty
115 * clear it here 113 * clear it here
@@ -824,7 +822,6 @@ static noinline int prepare_pages(struct btrfs_root *root, struct file *file,
824 return err; 822 return err;
825 } 823 }
826 824
827 memset(pages, 0, num_pages * sizeof(struct page *));
828again: 825again:
829 for (i = 0; i < num_pages; i++) { 826 for (i = 0; i < num_pages; i++) {
830 pages[i] = grab_cache_page(inode->i_mapping, index + i); 827 pages[i] = grab_cache_page(inode->i_mapping, index + i);
@@ -930,7 +927,6 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file,
930 size_t copied; 927 size_t copied;
931 928
932 WARN_ON(num_pages > nrptrs); 929 WARN_ON(num_pages > nrptrs);
933 memset(pages, 0, sizeof(struct page *) * nrptrs);
934 930
935 /* 931 /*
936 * Fault pages before locking them in prepare_pages 932 * Fault pages before locking them in prepare_pages
@@ -946,6 +942,11 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file,
946 if (ret) 942 if (ret)
947 break; 943 break;
948 944
945 /*
946 * This is going to setup the pages array with the number of
947 * pages we want, so we don't really need to worry about the
948 * contents of pages from loop to loop
949 */
949 ret = prepare_pages(root, file, pages, num_pages, 950 ret = prepare_pages(root, file, pages, num_pages,
950 pos, first_index, last_index, 951 pos, first_index, last_index,
951 write_bytes); 952 write_bytes);