fs: convert inode and dentry shrinking to be node aware
Now that the shrinker is passing a node in the scan control structure, we can pass this to the the generic LRU list code to isolate reclaim to the lists on matching nodes. Signed-off-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Glauber Costa <glommer@parallels.com> Acked-by: Mel Gorman <mgorman@suse.de> Cc: "Theodore Ts'o" <tytso@mit.edu> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Cc: Arve Hjønnevåg <arve@android.com> Cc: Carlos Maiolino <cmaiolino@redhat.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Chuck Lever <chuck.lever@oracle.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: David Rientjes <rientjes@google.com> Cc: Gleb Natapov <gleb@redhat.com> Cc: Greg Thelen <gthelen@google.com> Cc: J. Bruce Fields <bfields@redhat.com> Cc: Jan Kara <jack@suse.cz> Cc: Jerome Glisse <jglisse@redhat.com> Cc: John Stultz <john.stultz@linaro.org> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Kent Overstreet <koverstreet@google.com> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Marcelo Tosatti <mtosatti@redhat.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Steven Whitehouse <swhiteho@redhat.com> Cc: Thomas Hellstrom <thellstrom@vmware.com> Cc: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -748,13 +748,14 @@ 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)
|
||||
long prune_icache_sb(struct super_block *sb, unsigned long nr_to_scan,
|
||||
int nid)
|
||||
{
|
||||
LIST_HEAD(freeable);
|
||||
long freed;
|
||||
|
||||
freed = list_lru_walk(&sb->s_inode_lru, inode_lru_isolate,
|
||||
&freeable, nr_to_scan);
|
||||
freed = list_lru_walk_node(&sb->s_inode_lru, nid, inode_lru_isolate,
|
||||
&freeable, &nr_to_scan);
|
||||
dispose_list(&freeable);
|
||||
return freed;
|
||||
}
|
||||
|
Reference in New Issue
Block a user