diff options
author | Eric Biggers <ebiggers@google.com> | 2016-12-03 15:13:15 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2016-12-03 15:13:15 -0500 |
commit | 918b7306edacbcc8a9ca318a5a34d73954e1705d (patch) | |
tree | ea77374a7f3da47a8327d75ef6f4f46f2089c2aa /REPORTING-BUGS | |
parent | 4db0d88e2ebc4f47092adc01f9885a43ad748995 (diff) | |
download | linux-918b7306edacbcc8a9ca318a5a34d73954e1705d.tar.gz linux-918b7306edacbcc8a9ca318a5a34d73954e1705d.tar.bz2 linux-918b7306edacbcc8a9ca318a5a34d73954e1705d.zip |
mbcache: correctly handle 'e_referenced' bit
mbcache entries have an 'e_referenced' bit which users can set with
mb_cache_entry_touch() to indicate that an entry should be given another
pass through the LRU list before the shrinker can delete it. However,
mb_cache_shrink() actually would, when seeing an e_referenced entry at
the front of the list (the least-recently used end), place it right at
the front of the list again. The next iteration would then remove the
entry from the list and delete it. Consequently, e_referenced had
essentially no effect, so ext2/ext4 xattr blocks would sometimes not be
reused as often as expected.
Fix this by making the shrinker move e_referenced entries to the back of
the list rather than the front.
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'REPORTING-BUGS')
0 files changed, 0 insertions, 0 deletions