aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/super.c
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2009-03-04 19:09:10 -0500
committerTheodore Ts'o <tytso@mit.edu>2009-03-04 19:09:10 -0500
commit9f24e4208f7ee2748f157368b63287dc903fcf60 (patch)
tree255989fe69ebfb2b031dc7cf6dbe975df67c711a /fs/ext4/super.c
parentb713a5ec55bf73c833f9883cdd761b20ee61a1ab (diff)
ext4: Use atomic_t's in struct flex_groups
Reduce pressure on the sb_bgl_lock family of locks by using atomic_t's to track the number of free blocks and inodes in each flex_group. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r--fs/ext4/super.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 1ec554cc107..6b5d5c6399f 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1630,10 +1630,10 @@ static int ext4_fill_flex_info(struct super_block *sb)
1630 gdp = ext4_get_group_desc(sb, i, &bh); 1630 gdp = ext4_get_group_desc(sb, i, &bh);
1631 1631
1632 flex_group = ext4_flex_group(sbi, i); 1632 flex_group = ext4_flex_group(sbi, i);
1633 sbi->s_flex_groups[flex_group].free_inodes += 1633 atomic_set(&sbi->s_flex_groups[flex_group].free_inodes,
1634 ext4_free_inodes_count(sb, gdp); 1634 ext4_free_inodes_count(sb, gdp));
1635 sbi->s_flex_groups[flex_group].free_blocks += 1635 atomic_set(&sbi->s_flex_groups[flex_group].free_blocks,
1636 ext4_free_blks_count(sb, gdp); 1636 ext4_free_blks_count(sb, gdp));
1637 } 1637 }
1638 1638
1639 return 1; 1639 return 1;