aboutsummaryrefslogtreecommitdiffstats
path: root/fs/inode.c
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2013-08-27 20:17:57 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2013-09-10 18:56:30 -0400
commit0a234c6dcb79a270803f5c9773ed650b78730962 (patch)
tree8f93bd04d5c01a32dc78617c04dc770dc4b86883 /fs/inode.c
parent24f7c6b981fb70084757382da464ea85d72af300 (diff)
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. [glommer@openvz.org: use mult_frac for fractional proportions, build fixes] Signed-off-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Glauber Costa <glommer@openvz.org> 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>
Diffstat (limited to 'fs/inode.c')
-rw-r--r--fs/inode.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/inode.c b/fs/inode.c
index 2a3c37ea823d..021d64768a55 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -706,10 +706,11 @@ static int can_unuse(struct inode *inode)
706 * LRU does not have strict ordering. Hence we don't want to reclaim inodes 706 * LRU does not have strict ordering. Hence we don't want to reclaim inodes
707 * with this flag set because they are the inodes that are out of order. 707 * with this flag set because they are the inodes that are out of order.
708 */ 708 */
709void prune_icache_sb(struct super_block *sb, int nr_to_scan) 709long prune_icache_sb(struct super_block *sb, unsigned long nr_to_scan)
710{ 710{
711 LIST_HEAD(freeable); 711 LIST_HEAD(freeable);
712 int nr_scanned; 712 long nr_scanned;
713 long freed = 0;
713 unsigned long reap = 0; 714 unsigned long reap = 0;
714 715
715 spin_lock(&sb->s_inode_lru_lock); 716 spin_lock(&sb->s_inode_lru_lock);
@@ -779,6 +780,7 @@ void prune_icache_sb(struct super_block *sb, int nr_to_scan)
779 list_move(&inode->i_lru, &freeable); 780 list_move(&inode->i_lru, &freeable);
780 sb->s_nr_inodes_unused--; 781 sb->s_nr_inodes_unused--;
781 this_cpu_dec(nr_unused); 782 this_cpu_dec(nr_unused);
783 freed++;
782 } 784 }
783 if (current_is_kswapd()) 785 if (current_is_kswapd())
784 __count_vm_events(KSWAPD_INODESTEAL, reap); 786 __count_vm_events(KSWAPD_INODESTEAL, reap);
@@ -789,6 +791,7 @@ void prune_icache_sb(struct super_block *sb, int nr_to_scan)
789 current->reclaim_state->reclaimed_slab += reap; 791 current->reclaim_state->reclaimed_slab += reap;
790 792
791 dispose_list(&freeable); 793 dispose_list(&freeable);
794 return freed;
792} 795}
793 796
794static void __wait_on_freeing_inode(struct inode *inode); 797static void __wait_on_freeing_inode(struct inode *inode);