read_pages() is dropping the page refcount before running ->readpage().
Which just happens to work, because the page is in pagecache and
locked.
But it breaks under some unconventional things which reiser4 is doing,
and it's better/safer/saner this way anyway.
struct page *page = list_entry(pages->prev, struct page, list);
list_del(&page->list);
if (!add_to_page_cache(page, mapping, page->index)) {
+ mapping->a_ops->readpage(file, page);
if (!pagevec_add(&lru_pvec, page))
__pagevec_lru_add(&lru_pvec);
- mapping->a_ops->readpage(file, page);
} else {
page_cache_release(page);
}