mbcache: make sure c_entry_count is not decremented past zero

Signed-off-by: Jiang Biao <[email protected]>
Signed-off-by: Theodore Ts'o <[email protected]>
CC: Eric Biggers <[email protected]>
CC: Andrew Morton <[email protected]>
CC: Jan Kara <[email protected]>
This commit is contained in:
Jiang Biao 2018-01-09 23:57:52 -05:00 • committed by Theodore Ts'o
commit 9ee93ba3c4

View file

@ -239,7 +239,9 @@ void mb_cache_entry_delete(struct mb_cache *cache, u32 key, u64 value)
spin_lock(&cache->c_list_lock);
if (!list_empty(&entry->e_list)) {
list_del_init(&entry->e_list);
cache->c_entry_count--;
if (!WARN_ONCE(cache->c_entry_count == 0,
"mbcache: attempt to decrement c_entry_count past zero"))
cache->c_entry_count--;
atomic_dec(&entry->e_refcnt);
}
spin_unlock(&cache->c_list_lock);