diff options
author | Christoph Lameter <cl@linux-foundation.org> | 2008-08-11 08:06:28 -0700 |
---|---|---|
committer | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-11-03 11:19:07 +0200 |
commit | a016316800da95fa8d17ff5c84de7d7c4ed55768 (patch) | |
tree | 8c2df1feb18e6cf4e0a37b5cf2f8dcd4f3b848d0 /fs/ext2 | |
parent | 3152908b10b8c01c3fbebeb5314ac273247bb04b (diff) |
Filesystem: Ext2 filesystem defrag
Support defragmentation for ext2 filesystem inodes
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/ext2')
-rw-r--r-- | fs/ext2/super.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/ext2/super.c b/fs/ext2/super.c index 647cd888ac87..cf26ff18a795 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c @@ -171,6 +171,12 @@ static void init_once(void *foo) inode_init_once(&ei->vfs_inode); } +static void *ext2_get_inodes(struct kmem_cache *s, int nr, void **v) +{ + return fs_get_inodes(s, nr, v, + offsetof(struct ext2_inode_info, vfs_inode)); +} + static int init_inodecache(void) { ext2_inode_cachep = kmem_cache_create("ext2_inode_cache", @@ -180,6 +186,9 @@ static int init_inodecache(void) init_once); if (ext2_inode_cachep == NULL) return -ENOMEM; + + kmem_cache_setup_defrag(ext2_inode_cachep, + ext2_get_inodes, kick_inodes); return 0; } |