summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/main.c
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2015-07-16 08:28:04 -0500
committerBob Peterson <rpeterso@redhat.com>2015-12-14 12:16:38 -0600
commita097dc7e24cba7980bc5e2df461a4ef228e97e59 (patch)
treebfe9075d7d759fe136d540cea595dfbc4c81f361 /fs/gfs2/main.c
parentb54e9a0b92d44843f6719ae22b0f6daf5b9b23b4 (diff)
downloadlinux-stable-a097dc7e24cba7980bc5e2df461a4ef228e97e59.tar.gz
linux-stable-a097dc7e24cba7980bc5e2df461a4ef228e97e59.tar.bz2
linux-stable-a097dc7e24cba7980bc5e2df461a4ef228e97e59.zip
GFS2: Make rgrp reservations part of the gfs2_inode structure
Before this patch, multi-block reservation structures were allocated from a special slab. This patch folds the structure into the gfs2_inode structure. The disadvantage is that the gfs2_inode needs more memory, even when a file is opened read-only. The advantages are: (a) we don't need the special slab and the extra time it takes to allocate and deallocate from it. (b) we no longer need to worry that the structure exists for things like quota management. (c) This also allows us to remove the calls to get_write_access and put_write_access since we know the structure will exist. Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Diffstat (limited to 'fs/gfs2/main.c')
-rw-r--r--fs/gfs2/main.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c
index cde5c73c42df..1d709d496364 100644
--- a/fs/gfs2/main.c
+++ b/fs/gfs2/main.c
@@ -42,7 +42,8 @@ static void gfs2_init_inode_once(void *foo)
init_rwsem(&ip->i_rw_mutex);
INIT_LIST_HEAD(&ip->i_trunc_list);
ip->i_qadata = NULL;
- ip->i_res = NULL;
+ memset(&ip->i_res, 0, sizeof(ip->i_res));
+ RB_CLEAR_NODE(&ip->i_res.rs_node);
ip->i_hash_cache = NULL;
}
@@ -142,12 +143,6 @@ static int __init init_gfs2_fs(void)
if (!gfs2_qadata_cachep)
goto fail;
- gfs2_rsrv_cachep = kmem_cache_create("gfs2_mblk",
- sizeof(struct gfs2_blkreserv),
- 0, 0, NULL);
- if (!gfs2_rsrv_cachep)
- goto fail;
-
register_shrinker(&gfs2_qd_shrinker);
error = register_filesystem(&gfs2_fs_type);
@@ -200,9 +195,6 @@ fail_lru:
unregister_shrinker(&gfs2_qd_shrinker);
gfs2_glock_exit();
- if (gfs2_rsrv_cachep)
- kmem_cache_destroy(gfs2_rsrv_cachep);
-
if (gfs2_qadata_cachep)
kmem_cache_destroy(gfs2_qadata_cachep);
@@ -248,7 +240,6 @@ static void __exit exit_gfs2_fs(void)
rcu_barrier();
mempool_destroy(gfs2_page_pool);
- kmem_cache_destroy(gfs2_rsrv_cachep);
kmem_cache_destroy(gfs2_qadata_cachep);
kmem_cache_destroy(gfs2_quotad_cachep);
kmem_cache_destroy(gfs2_rgrpd_cachep);