aboutsummaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2024-08-28 12:56:25 +0200
committerChristian Brauner <brauner@kernel.org>2024-08-29 15:20:33 +0200
commitea566e18b4deea6e998088de4f1a76d1f39c8d3f (patch)
tree303fc2b39b85f01582497fcb2f8a2c38bb24063b /fs
parentd345bd2e9834e2da505977e154a1c179c793b7b2 (diff)
fs: use kmem_cache_create_rcu()
Switch to the new kmem_cache_create_rcu() helper which allows us to use a custom free pointer offset avoiding the need to have an external free pointer which would grow struct file behind our backs. Link: https://lore.kernel.org/r/20240828-work-kmem_cache-rcu-v3-3-5460bc1f09f6@kernel.org Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Reviewed-by: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/file_table.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/file_table.c b/fs/file_table.c
index fdf98709dde2..3ef558f27a1c 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
@@ -511,9 +511,9 @@ EXPORT_SYMBOL(__fput_sync);
void __init files_init(void)
{
- filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0,
- SLAB_TYPESAFE_BY_RCU | SLAB_HWCACHE_ALIGN |
- SLAB_PANIC | SLAB_ACCOUNT, NULL);
+ filp_cachep = kmem_cache_create_rcu("filp", sizeof(struct file),
+ offsetof(struct file, f_freeptr),
+ SLAB_HWCACHE_ALIGN | SLAB_PANIC | SLAB_ACCOUNT);
percpu_counter_init(&nr_files, 0, GFP_KERNEL);
}