From 9ee93ba3c430d5b5140ab72738dc70c4c54990e0 Mon Sep 17 00:00:00 2001 From: Jiang Biao Date: Tue, 9 Jan 2018 23:57:52 -0500 Subject: mbcache: make sure c_entry_count is not decremented past zero Signed-off-by: Jiang Biao Signed-off-by: Theodore Ts'o CC: Eric Biggers CC: Andrew Morton CC: Jan Kara --- fs/mbcache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'fs') diff --git a/fs/mbcache.c b/fs/mbcache.c index 49c5b25bfa8c..bf41e2e72c18 100644 --- a/fs/mbcache.c +++ b/fs/mbcache.c @@ -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); -- cgit v1.2.3