vfs: fix possible deadlock in ext2, ext3, ext4 when using xattrs
[sfrench/cifs-2.6.git] / fs / mbcache.c
index 1046cbefbfbf4f56be9640dacacc1d884af492f4..ec88ff3d04a9194a4b595701e917ef784b8bdc2a 100644 (file)
@@ -399,13 +399,13 @@ mb_cache_destroy(struct mb_cache *cache)
  * if no more memory was available.
  */
 struct mb_cache_entry *
-mb_cache_entry_alloc(struct mb_cache *cache)
+mb_cache_entry_alloc(struct mb_cache *cache, gfp_t gfp_flags)
 {
        struct mb_cache_entry *ce;
 
-       atomic_inc(&cache->c_entry_count);
-       ce = kmem_cache_alloc(cache->c_entry_cache, GFP_KERNEL);
+       ce = kmem_cache_alloc(cache->c_entry_cache, gfp_flags);
        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;