summaryrefslogtreecommitdiff
path: root/fs/proc/inode.c
diff options
context:
space:
mode:
authorChristoph Lameter <cl@linux-foundation.org>2008-08-11 08:06:32 -0700
committerPekka Enberg <penberg@cs.helsinki.fi>2008-11-03 11:20:51 +0200
commit539b180aa62a8df8c93dae729ed11c5f52998b90 (patch)
tree8c6b453d9cda63900f01da8cc06ae31c104fec71 /fs/proc/inode.c
parent5b2284ab14470a7f24f6bf27c8b4aacf381c0d58 (diff)
Filesystem: /proc filesystem support for slab defrag
Support procfs inode defragmentation Cc: Alexey Dobriyan <adobriyan@sw.ru> Reviewed-by: Rik van Riel <riel@redhat.com> Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Christoph Lameter <cl@linux-foundation.org> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Diffstat (limited to 'fs/proc/inode.c')
-rw-r--r--fs/proc/inode.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/proc/inode.c b/fs/proc/inode.c
index 2543fd00c658..bcb674275348 100644
--- a/fs/proc/inode.c
+++ b/fs/proc/inode.c
@@ -106,6 +106,12 @@ static void init_once(void *foo)
inode_init_once(&ei->vfs_inode);
}
+static void *proc_get_inodes(struct kmem_cache *s, int nr, void **v)
+{
+ return fs_get_inodes(s, nr, v,
+ offsetof(struct proc_inode, vfs_inode));
+}
+
void __init proc_init_inodecache(void)
{
proc_inode_cachep = kmem_cache_create("proc_inode_cache",
@@ -113,6 +119,8 @@ void __init proc_init_inodecache(void)
0, (SLAB_RECLAIM_ACCOUNT|
SLAB_MEM_SPREAD|SLAB_PANIC),
init_once);
+ kmem_cache_setup_defrag(proc_inode_cachep,
+ proc_get_inodes, kick_inodes);
}
static const struct super_operations proc_sops = {