fs: Fix to correct the mbcache entries counter
authorRam Gupta <ram.gupta5@gmail.com>
Thu, 25 Oct 2007 15:03:28 +0000 (10:03 -0500)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 25 Oct 2007 22:18:29 +0000 (15:18 -0700)
This patch fixes the c_entry_count counter of the mbcache. Currently
it increments the counter first & allocate the cache entry later. In
case of failure to allocate the entry due to insufficient memory this
counter is still left incremented. This patch fixes this anomaly.

Signed-off-by: Ram Gupta <ram.gupta5@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/mbcache.c

index 1046cbefbfbf4f56be9640dacacc1d884af492f4..eb31b73e7d6999357cd86bd7af0ff208b917ca5d 100644 (file)
@@ -403,9 +403,9 @@ mb_cache_entry_alloc(struct mb_cache *cache)
 {
        struct mb_cache_entry *ce;
 
-       atomic_inc(&cache->c_entry_count);
        ce = kmem_cache_alloc(cache->c_entry_cache, GFP_KERNEL);
        if (ce) {
+               atomic_inc(&cache->c_entry_count);
                INIT_LIST_HEAD(&ce->e_lru_list);
                INIT_LIST_HEAD(&ce->e_block_list);
                ce->e_cache = cache;