ext4: change LRU to round-robin in extent status tree shrinker
authorZheng Liu <wenqing.lz@taobao.com>
Tue, 25 Nov 2014 16:45:37 +0000 (11:45 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 25 Nov 2014 16:45:37 +0000 (11:45 -0500)
commitedaa53cac8fd4b96ed4b8f96c4933158ff2dd337
treef414417ca79fe9678743ea5af75bd5afb70ad8cd
parent2f8e0a7c6c89f850ebd5d6c0b9a08317030d1b89
ext4: change LRU to round-robin in extent status tree shrinker

In this commit we discard the lru algorithm for inodes with extent
status tree because it takes significant effort to maintain a lru list
in extent status tree shrinker and the shrinker can take a long time to
scan this lru list in order to reclaim some objects.

We replace the lru ordering with a simple round-robin.  After that we
never need to keep a lru list.  That means that the list needn't be
sorted if the shrinker can not reclaim any objects in the first round.

Cc: Andreas Dilger <adilger.kernel@dilger.ca>
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/extents.c
fs/ext4/extents_status.c
fs/ext4/extents_status.h
fs/ext4/inode.c
fs/ext4/ioctl.c
fs/ext4/super.c
include/trace/events/ext4.h