Re: [PATCH 1/5] mbcache: correctly handle 'e_referenced' bit
From: Eric Biggers <hidden>
Date: 2016-11-28 17:32:47
On Mon, Nov 28, 2016 at 11:44:20AM +0100, Jan Kara wrote:
On Sat 26-11-16 22:17:57, Eric Biggers wrote:quoted
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 <redacted>Bah, good spotting. You can add: Reviewed-by: Jan Kara <jack@suse.cz> BTW, how did you find out?
Nothing special --- I just happened to notice while reading over the code. Eric