of: add vendor prefix for Abracon Corporation
[linux-drm-fsl-dcu.git] / fs / inode.c
index b7871577571d2bbadad346b0af566ee3e8e93b81..86bfaca724dbdb9f0bded8076b03741ad2eddc58 100644 (file)
@@ -672,8 +672,8 @@ int invalidate_inodes(struct super_block *sb, bool kill_dirty)
  * LRU does not have strict ordering. Hence we don't want to reclaim inodes
  * with this flag set because they are the inodes that are out of order.
  */
-static enum lru_status
-inode_lru_isolate(struct list_head *item, spinlock_t *lru_lock, void *arg)
+static enum lru_status inode_lru_isolate(struct list_head *item,
+               struct list_lru_one *lru, spinlock_t *lru_lock, void *arg)
 {
        struct list_head *freeable = arg;
        struct inode    *inode = container_of(item, struct inode, i_lru);
@@ -691,7 +691,7 @@ inode_lru_isolate(struct list_head *item, spinlock_t *lru_lock, void *arg)
         */
        if (atomic_read(&inode->i_count) ||
            (inode->i_state & ~I_REFERENCED)) {
-               list_del_init(&inode->i_lru);
+               list_lru_isolate(lru, &inode->i_lru);
                spin_unlock(&inode->i_lock);
                this_cpu_dec(nr_unused);
                return LRU_REMOVED;
@@ -725,7 +725,7 @@ inode_lru_isolate(struct list_head *item, spinlock_t *lru_lock, void *arg)
 
        WARN_ON(inode->i_state & I_NEW);
        inode->i_state |= I_FREEING;
-       list_move(&inode->i_lru, freeable);
+       list_lru_isolate_move(lru, &inode->i_lru, freeable);
        spin_unlock(&inode->i_lock);
 
        this_cpu_dec(nr_unused);
@@ -738,14 +738,13 @@ inode_lru_isolate(struct list_head *item, spinlock_t *lru_lock, void *arg)
  * to trim from the LRU. Inodes to be freed are moved to a temporary list and
  * then are freed outside inode_lock by dispose_list().
  */
-long prune_icache_sb(struct super_block *sb, unsigned long nr_to_scan,
-                    int nid)
+long prune_icache_sb(struct super_block *sb, struct shrink_control *sc)
 {
        LIST_HEAD(freeable);
        long freed;
 
-       freed = list_lru_walk_node(&sb->s_inode_lru, nid, inode_lru_isolate,
-                                      &freeable, &nr_to_scan);
+       freed = list_lru_shrink_walk(&sb->s_inode_lru, sc,
+                                    inode_lru_isolate, &freeable);
        dispose_list(&freeable);
        return freed;
 }