diff options
Diffstat (limited to 'fs/inode.c')
-rw-r--r-- | fs/inode.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/inode.c b/fs/inode.c index 9e198f00b64c..35d2108d567c 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -730,8 +730,11 @@ static enum lru_status inode_lru_isolate(struct list_head *item, | |||
730 | return LRU_REMOVED; | 730 | return LRU_REMOVED; |
731 | } | 731 | } |
732 | 732 | ||
733 | /* recently referenced inodes get one more pass */ | 733 | /* |
734 | if (inode->i_state & I_REFERENCED) { | 734 | * Recently referenced inodes and inodes with many attached pages |
735 | * get one more pass. | ||
736 | */ | ||
737 | if (inode->i_state & I_REFERENCED || inode->i_data.nrpages > 1) { | ||
735 | inode->i_state &= ~I_REFERENCED; | 738 | inode->i_state &= ~I_REFERENCED; |
736 | spin_unlock(&inode->i_lock); | 739 | spin_unlock(&inode->i_lock); |
737 | return LRU_ROTATE; | 740 | return LRU_ROTATE; |