[PATCH] mb_cache_shrink() frees unexpected caches

From: Akinobu Mita
Date: Thu Jul 14 2005 - 08:14:41 EST


mb_cache_shrink() tries to free all sort of mbcache in the lru list.

All user of mb_cache_shrink() are ext2/ext3 xattr.

Signed-off-by: Akinobu Mita <amgta@xxxxxxxxxxxxxxx>

--- 2.6-rc/fs/mbcache.c.orig 2005-07-14 20:40:34.000000000 +0900
+++ 2.6-rc/fs/mbcache.c 2005-07-14 20:43:42.000000000 +0900
@@ -329,7 +329,7 @@ mb_cache_shrink(struct mb_cache *cache,
list_for_each_safe(l, ltmp, &mb_cache_lru_list) {
struct mb_cache_entry *ce =
list_entry(l, struct mb_cache_entry, e_lru_list);
- if (ce->e_bdev == bdev) {
+ if (ce->e_cache == cache && ce->e_bdev == bdev) {
list_move_tail(&ce->e_lru_list, &free_list);
__mb_cache_entry_unhash(ce);
}


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/