Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 189471
b: refs/heads/master
c: 28ecb60
h: refs/heads/master
i:
  189469: 5d0d466
  189467: 44d89ca
  189463: 2f38a0b
  189455: 57c15d7
  189439: 0cbc772
v: v3
  • Loading branch information
Nick Piggin authored and Chris Mason committed Apr 5, 2010
1 parent 73bc4a8 commit ab240d5
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 33 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0cad8a1130f77c7c445e3298c0e3593b3c0ef439
refs/heads/master: 28ecb60906e86e74e9ad4ac7e0218d8631e73a94
22 changes: 4 additions & 18 deletions trunk/fs/btrfs/compression.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
#include <linux/swap.h>
#include <linux/writeback.h>
#include <linux/bit_spinlock.h>
#include <linux/pagevec.h>
#include "compat.h"
#include "ctree.h"
#include "disk-io.h"
Expand Down Expand Up @@ -445,7 +444,6 @@ static noinline int add_ra_bio_pages(struct inode *inode,
unsigned long nr_pages = 0;
struct extent_map *em;
struct address_space *mapping = inode->i_mapping;
struct pagevec pvec;
struct extent_map_tree *em_tree;
struct extent_io_tree *tree;
u64 end;
Expand All @@ -461,7 +459,6 @@ static noinline int add_ra_bio_pages(struct inode *inode,

end_index = (i_size_read(inode) - 1) >> PAGE_CACHE_SHIFT;

pagevec_init(&pvec, 0);
while (last_offset < compressed_end) {
page_index = last_offset >> PAGE_CACHE_SHIFT;

Expand All @@ -478,26 +475,17 @@ static noinline int add_ra_bio_pages(struct inode *inode,
goto next;
}

page = alloc_page(mapping_gfp_mask(mapping) & ~__GFP_FS);
page = __page_cache_alloc(mapping_gfp_mask(mapping) &
~__GFP_FS);
if (!page)
break;

page->index = page_index;
/*
* what we want to do here is call add_to_page_cache_lru,
* but that isn't exported, so we reproduce it here
*/
if (add_to_page_cache(page, mapping,
page->index, GFP_NOFS)) {
if (add_to_page_cache_lru(page, mapping, page_index,
GFP_NOFS)) {
page_cache_release(page);
goto next;
}

/* open coding of lru_cache_add, also not exported */
page_cache_get(page);
if (!pagevec_add(&pvec, page))
__pagevec_lru_add_file(&pvec);

end = last_offset + PAGE_CACHE_SIZE - 1;
/*
* at this point, we have a locked page in the page cache
Expand Down Expand Up @@ -551,8 +539,6 @@ static noinline int add_ra_bio_pages(struct inode *inode,
next:
last_offset += PAGE_CACHE_SIZE;
}
if (pagevec_count(&pvec))
__pagevec_lru_add_file(&pvec);
return 0;
}

Expand Down
15 changes: 1 addition & 14 deletions trunk/fs/btrfs/extent_io.c
Original file line number Diff line number Diff line change
Expand Up @@ -2679,33 +2679,20 @@ int extent_readpages(struct extent_io_tree *tree,
{
struct bio *bio = NULL;
unsigned page_idx;
struct pagevec pvec;
unsigned long bio_flags = 0;

pagevec_init(&pvec, 0);
for (page_idx = 0; page_idx < nr_pages; page_idx++) {
struct page *page = list_entry(pages->prev, struct page, lru);

prefetchw(&page->flags);
list_del(&page->lru);
/*
* what we want to do here is call add_to_page_cache_lru,
* but that isn't exported, so we reproduce it here
*/
if (!add_to_page_cache(page, mapping,
if (!add_to_page_cache_lru(page, mapping,
page->index, GFP_KERNEL)) {

/* open coding of lru_cache_add, also not exported */
page_cache_get(page);
if (!pagevec_add(&pvec, page))
__pagevec_lru_add_file(&pvec);
__extent_read_full_page(tree, page, get_extent,
&bio, 0, &bio_flags);
}
page_cache_release(page);
}
if (pagevec_count(&pvec))
__pagevec_lru_add_file(&pvec);
BUG_ON(!list_empty(pages));
if (bio)
submit_one_bio(READ, bio, 0, bio_flags);
Expand Down

0 comments on commit ab240d5

Please sign in to comment.