fs, mm: account filp cache to kmemcg
[sfrench/cifs-2.6.git] / fs / file_table.c
index 61517f57f8ef744e9915c33659cfba96c0a1f767..2dc9f38bd195e2e23a8c72f3cb8b407c80136040 100644 (file)
@@ -201,11 +201,11 @@ static void __fput(struct file *file)
        eventpoll_release(file);
        locks_remove_file(file);
 
+       ima_file_free(file);
        if (unlikely(file->f_flags & FASYNC)) {
                if (file->f_op->fasync)
                        file->f_op->fasync(-1, file, 0);
        }
-       ima_file_free(file);
        if (file->f_op->release)
                file->f_op->release(inode, file);
        security_file_free(file);
@@ -312,7 +312,7 @@ void put_filp(struct file *file)
 void __init files_init(void)
 {
        filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0,
-                       SLAB_HWCACHE_ALIGN | SLAB_PANIC, NULL);
+                       SLAB_HWCACHE_ALIGN | SLAB_PANIC | SLAB_ACCOUNT, NULL);
        percpu_counter_init(&nr_files, 0, GFP_KERNEL);
 }