In mb_cache_entry_find_first/mb_cache_entry_find_next, macro mb_assert is used to do assertion on index, but it just prints KERN_ERR info if defined. Currently, only ext2/ext3/ext4 use the function with index set 0. But for potential usage by other subsystems, I think we shoud report BUG if we got some index out of bound here. Following patch is against 2.6.35-rc3, and should be applied after the first patch.Please check it. Signed-off-by: Wang Sheng-Hui <crosslonelyover@xxxxxxxxx> --- fs/mbcache.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/mbcache.c b/fs/mbcache.c index 5697d9e..ed25979 100644 --- a/fs/mbcache.c +++ b/fs/mbcache.c @@ -614,7 +614,7 @@ mb_cache_entry_find_first(struct mb_cache *cache, int index, struct list_head *l; struct mb_cache_entry *ce; - mb_assert(index < mb_cache_indexes(cache)); + BUG_ON((index < 0) || (index >= mb_cache_indexes(cache))); spin_lock(&mb_cache_spinlock); l = cache->c_indexes_hash[index][bucket].next; ce = __mb_cache_entry_find(l, &cache->c_indexes_hash[index][bucket], @@ -652,7 +652,7 @@ mb_cache_entry_find_next(struct mb_cache_entry *prev, int index, struct list_head *l; struct mb_cache_entry *ce; - mb_assert(index < mb_cache_indexes(cache)); + BUG_ON((index < 0) || (index >= mb_cache_indexes(cache))); spin_lock(&mb_cache_spinlock); l = prev->e_indexes[index].o_list.next; ce = __mb_cache_entry_find(l, &cache->c_indexes_hash[index][bucket], -- 1.7.1.1 -- Thanks and Regards, shenghui -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html