X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=fs%2Fmpage.c;h=d54f8f8972242a62e437bc904059773d2c697e6d;hb=b9d36d5d000294a128f7f174fe67623a10e29d61;hp=b1c3e58905086eb920cafd4df806b7d70dd6ef36;hpb=408af0dab78ef4145203b849d6bfd3195f6e3ec9;p=powerpc.git diff --git a/fs/mpage.c b/fs/mpage.c index b1c3e58905..d54f8f8972 100644 --- a/fs/mpage.c +++ b/fs/mpage.c @@ -379,31 +379,25 @@ mpage_readpages(struct address_space *mapping, struct list_head *pages, struct bio *bio = NULL; unsigned page_idx; sector_t last_block_in_bio = 0; - struct pagevec lru_pvec; struct buffer_head map_bh; unsigned long first_logical_block = 0; clear_buffer_mapped(&map_bh); - pagevec_init(&lru_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); - if (!add_to_page_cache(page, mapping, + if (!add_to_page_cache_lru(page, mapping, page->index, GFP_KERNEL)) { bio = do_mpage_readpage(bio, page, nr_pages - page_idx, &last_block_in_bio, &map_bh, &first_logical_block, get_block); - if (!pagevec_add(&lru_pvec, page)) - __pagevec_lru_add(&lru_pvec); - } else { - page_cache_release(page); } + page_cache_release(page); } - pagevec_lru_add(&lru_pvec); BUG_ON(!list_empty(pages)); if (bio) mpage_bio_submit(READ, bio);