mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
shrinker: convert superblock shrinkers to new API
Convert superblock shrinker to use the new count/scan API, and propagate the API changes through to the filesystem callouts. The filesystem callouts already use a count/scan API, so it's just changing counters to longs to match the VM API. This requires the dentry and inode shrinker callouts to be converted to the count/scan API. This is mainly a mechanical change. [[email protected]: use mult_frac for fractional proportions, build fixes] Signed-off-by: Dave Chinner <[email protected]> Signed-off-by: Glauber Costa <[email protected]> Acked-by: Mel Gorman <[email protected]> Cc: "Theodore Ts'o" <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Al Viro <[email protected]> Cc: Artem Bityutskiy <[email protected]> Cc: Arve Hjønnevåg <[email protected]> Cc: Carlos Maiolino <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Chuck Lever <[email protected]> Cc: Daniel Vetter <[email protected]> Cc: David Rientjes <[email protected]> Cc: Gleb Natapov <[email protected]> Cc: Greg Thelen <[email protected]> Cc: J. Bruce Fields <[email protected]> Cc: Jan Kara <[email protected]> Cc: Jerome Glisse <[email protected]> Cc: John Stultz <[email protected]> Cc: KAMEZAWA Hiroyuki <[email protected]> Cc: Kent Overstreet <[email protected]> Cc: Kirill A. Shutemov <[email protected]> Cc: Marcelo Tosatti <[email protected]> Cc: Mel Gorman <[email protected]> Cc: Steven Whitehouse <[email protected]> Cc: Thomas Hellstrom <[email protected]> Cc: Trond Myklebust <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Al Viro <[email protected]>
This commit is contained in:
parent
24f7c6b981
commit
0a234c6dcb
8 changed files with 70 additions and 48 deletions
|
|
@ -706,10 +706,11 @@ static int can_unuse(struct inode *inode)
|
|||
* 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.
|
||||
*/
|
||||
void prune_icache_sb(struct super_block *sb, int nr_to_scan)
|
||||
long prune_icache_sb(struct super_block *sb, unsigned long nr_to_scan)
|
||||
{
|
||||
LIST_HEAD(freeable);
|
||||
int nr_scanned;
|
||||
long nr_scanned;
|
||||
long freed = 0;
|
||||
unsigned long reap = 0;
|
||||
|
||||
spin_lock(&sb->s_inode_lru_lock);
|
||||
|
|
@ -779,6 +780,7 @@ void prune_icache_sb(struct super_block *sb, int nr_to_scan)
|
|||
list_move(&inode->i_lru, &freeable);
|
||||
sb->s_nr_inodes_unused--;
|
||||
this_cpu_dec(nr_unused);
|
||||
freed++;
|
||||
}
|
||||
if (current_is_kswapd())
|
||||
__count_vm_events(KSWAPD_INODESTEAL, reap);
|
||||
|
|
@ -789,6 +791,7 @@ void prune_icache_sb(struct super_block *sb, int nr_to_scan)
|
|||
current->reclaim_state->reclaimed_slab += reap;
|
||||
|
||||
dispose_list(&freeable);
|
||||
return freed;
|
||||
}
|
||||
|
||||
static void __wait_on_freeing_inode(struct inode *inode);
|
||||
|
|
|
|||
Loading…
Reference in a new issue