#include <linux/mount.h>
 #include <linux/slab.h>
 #include <linux/file.h>
+#include <linux/swap.h>
 #include "internal.h"
 
 /*
  */
 static int cachefiles_read_backing_file_one(struct cachefiles_object *object,
                                            struct fscache_retrieval *op,
-                                           struct page *netpage,
-                                           struct pagevec *pagevec)
+                                           struct page *netpage)
 {
        struct cachefiles_one_read *monitor;
        struct address_space *bmapping;
 
        _enter("");
 
-       pagevec_reinit(pagevec);
-
        _debug("read back %p{%lu,%d}",
               netpage, netpage->index, page_count(netpage));
 
        backpage = newpage;
        newpage = NULL;
 
-       page_cache_get(backpage);
-       pagevec_add(pagevec, backpage);
-       __pagevec_lru_add_file(pagevec);
+       lru_cache_add_file(backpage);
 
 read_backing_page:
        ret = bmapping->a_ops->readpage(NULL, backpage);
        if (block) {
                /* submit the apparently valid page to the backing fs to be
                 * read from disk */
-               ret = cachefiles_read_backing_file_one(object, op, page,
-                                                      &pagevec);
+               ret = cachefiles_read_backing_file_one(object, op, page);
        } else if (cachefiles_has_space(cache, 0, 1) == 0) {
                /* there's space in the cache we can use */
                fscache_mark_page_cached(op, page);
 {
        struct cachefiles_one_read *monitor = NULL;
        struct address_space *bmapping = object->backer->d_inode->i_mapping;
-       struct pagevec lru_pvec;
        struct page *newpage = NULL, *netpage, *_n, *backpage = NULL;
        int ret = 0;
 
        _enter("");
 
-       pagevec_init(&lru_pvec, 0);
-
        list_for_each_entry_safe(netpage, _n, list, lru) {
                list_del(&netpage->lru);
 
                backpage = newpage;
                newpage = NULL;
 
-               page_cache_get(backpage);
-               if (!pagevec_add(&lru_pvec, backpage))
-                       __pagevec_lru_add_file(&lru_pvec);
+               lru_cache_add_file(backpage);
 
        reread_backing_page:
                ret = bmapping->a_ops->readpage(NULL, backpage);
                        goto nomem;
                }
 
-               page_cache_get(netpage);
-               if (!pagevec_add(&lru_pvec, netpage))
-                       __pagevec_lru_add_file(&lru_pvec);
+               lru_cache_add_file(netpage);
 
                /* install a monitor */
                page_cache_get(netpage);
 
                fscache_mark_page_cached(op, netpage);
 
-               page_cache_get(netpage);
-               if (!pagevec_add(&lru_pvec, netpage))
-                       __pagevec_lru_add_file(&lru_pvec);
+               lru_cache_add_file(netpage);
 
                /* the netpage is unlocked and marked up to date here */
                fscache_end_io(op, netpage, 0);
 
 out:
        /* tidy up */
-       pagevec_lru_add_file(&lru_pvec);
-
        if (newpage)
                page_cache_release(newpage);
        if (netpage)
 
 #include <linux/pagevec.h>
 #include <linux/namei.h>
 #include <linux/mount.h>
+#include <linux/swap.h>
 #include <linux/sched.h>
 #include <linux/kmemleak.h>
 #include <linux/xattr.h>
  */
 int nfs_symlink(struct inode *dir, struct dentry *dentry, const char *symname)
 {
-       struct pagevec lru_pvec;
        struct page *page;
        char *kaddr;
        struct iattr attr;
         * No big deal if we can't add this page to the page cache here.
         * READLINK will get the missing page from the server if needed.
         */
-       pagevec_init(&lru_pvec, 0);
-       if (!add_to_page_cache(page, dentry->d_inode->i_mapping, 0,
+       if (!add_to_page_cache_lru(page, dentry->d_inode->i_mapping, 0,
                                                        GFP_KERNEL)) {
-               pagevec_add(&lru_pvec, page);
-               pagevec_lru_add_file(&lru_pvec);
                SetPageUptodate(page);
                unlock_page(page);
        } else
 
 };
 
 void __pagevec_release(struct pagevec *pvec);
-void __pagevec_lru_add(struct pagevec *pvec, enum lru_list lru);
+void __pagevec_lru_add(struct pagevec *pvec);
 unsigned pagevec_lookup(struct pagevec *pvec, struct address_space *mapping,
                pgoff_t start, unsigned nr_pages);
 unsigned pagevec_lookup_tag(struct pagevec *pvec,
                __pagevec_release(pvec);
 }
 
-static inline void __pagevec_lru_add_anon(struct pagevec *pvec)
-{
-       __pagevec_lru_add(pvec, LRU_INACTIVE_ANON);
-}
-
-static inline void __pagevec_lru_add_active_anon(struct pagevec *pvec)
-{
-       __pagevec_lru_add(pvec, LRU_ACTIVE_ANON);
-}
-
-static inline void __pagevec_lru_add_file(struct pagevec *pvec)
-{
-       __pagevec_lru_add(pvec, LRU_INACTIVE_FILE);
-}
-
-static inline void __pagevec_lru_add_active_file(struct pagevec *pvec)
-{
-       __pagevec_lru_add(pvec, LRU_ACTIVE_FILE);
-}
-
-static inline void pagevec_lru_add_file(struct pagevec *pvec)
-{
-       if (pagevec_count(pvec))
-               __pagevec_lru_add_file(pvec);
-}
-
-static inline void pagevec_lru_add_anon(struct pagevec *pvec)
-{
-       if (pagevec_count(pvec))
-               __pagevec_lru_add_anon(pvec);
-}
-
 #endif /* _LINUX_PAGEVEC_H */
 
 
        page_cache_get(page);
        if (!pagevec_space(pvec))
-               __pagevec_lru_add(pvec, lru);
+               __pagevec_lru_add(pvec);
        pagevec_add(pvec, page);
        put_cpu_var(lru_add_pvec);
 }
        struct pagevec *pvec = &per_cpu(lru_add_pvec, cpu);
 
        if (pagevec_count(pvec))
-               __pagevec_lru_add(pvec, NR_LRU_LISTS);
+               __pagevec_lru_add(pvec);
 
        pvec = &per_cpu(lru_rotate_pvecs, cpu);
        if (pagevec_count(pvec)) {
 static void __pagevec_lru_add_fn(struct page *page, struct lruvec *lruvec,
                                 void *arg)
 {
-       enum lru_list requested_lru = (enum lru_list)arg;
        int file = page_is_file_cache(page);
        int active = PageActive(page);
        enum lru_list lru = page_lru(page);
 
-       WARN_ON_ONCE(requested_lru < NR_LRU_LISTS && requested_lru != lru);
        VM_BUG_ON(PageUnevictable(page));
        VM_BUG_ON(PageLRU(page));
 
  * Add the passed pages to the LRU, then drop the caller's refcount
  * on them.  Reinitialises the caller's pagevec.
  */
-void __pagevec_lru_add(struct pagevec *pvec, enum lru_list lru)
+void __pagevec_lru_add(struct pagevec *pvec)
 {
-       VM_BUG_ON(is_unevictable_lru(lru));
-
-       pagevec_lru_move_fn(pvec, __pagevec_lru_add_fn, (void *)lru);
+       pagevec_lru_move_fn(pvec, __pagevec_lru_add_fn, NULL);
 }
 EXPORT_SYMBOL(__pagevec_lru_add);