aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/mballoc.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-06-08 16:03:35 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-08 16:03:35 -0400
commitf8409abdc592e13cefbe4e4a24a84b3d5741e85f (patch)
treeb016b7158eb080d59bf79605958cb746d545f56d /fs/ext4/mballoc.c
parentb20dcab9d4589ef9918a13c888c5493945adfc13 (diff)
parentbd9db175dde14b606265e0d37e8319d96fe1a58f (diff)
Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o: "Clean ups and miscellaneous bug fixes, in particular for the new collapse_range and zero_range fallocate functions. In addition, improve the scalability of adding and remove inodes from the orphan list" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (25 commits) ext4: handle symlink properly with inline_data ext4: fix wrong assert in ext4_mb_normalize_request() ext4: fix zeroing of page during writeback ext4: remove unused local variable "stored" from ext4_readdir(...) ext4: fix ZERO_RANGE test failure in data journalling ext4: reduce contention on s_orphan_lock ext4: use sbi in ext4_orphan_{add|del}() ext4: use EXT_MAX_BLOCKS in ext4_es_can_be_merged() ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access ext4: remove unnecessary double parentheses ext4: do not destroy ext4_groupinfo_caches if ext4_mb_init() fails ext4: make local functions static ext4: fix block bitmap validation when bigalloc, ^flex_bg ext4: fix block bitmap initialization under sparse_super2 ext4: find the group descriptors on a 1k-block bigalloc,meta_bg filesystem ext4: avoid unneeded lookup when xattr name is invalid ext4: fix data integrity sync in ordered mode ext4: remove obsoleted check ext4: add a new spinlock i_raw_lock to protect the ext4's raw inode ext4: fix locking for O_APPEND writes ...
Diffstat (limited to 'fs/ext4/mballoc.c')
-rw-r--r--fs/ext4/mballoc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index afe8a133e3d1..59e31622cc6e 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -2619,7 +2619,7 @@ int ext4_mb_init(struct super_block *sb)
2619 sbi->s_locality_groups = alloc_percpu(struct ext4_locality_group); 2619 sbi->s_locality_groups = alloc_percpu(struct ext4_locality_group);
2620 if (sbi->s_locality_groups == NULL) { 2620 if (sbi->s_locality_groups == NULL) {
2621 ret = -ENOMEM; 2621 ret = -ENOMEM;
2622 goto out_free_groupinfo_slab; 2622 goto out;
2623 } 2623 }
2624 for_each_possible_cpu(i) { 2624 for_each_possible_cpu(i) {
2625 struct ext4_locality_group *lg; 2625 struct ext4_locality_group *lg;
@@ -2644,8 +2644,6 @@ int ext4_mb_init(struct super_block *sb)
2644out_free_locality_groups: 2644out_free_locality_groups:
2645 free_percpu(sbi->s_locality_groups); 2645 free_percpu(sbi->s_locality_groups);
2646 sbi->s_locality_groups = NULL; 2646 sbi->s_locality_groups = NULL;
2647out_free_groupinfo_slab:
2648 ext4_groupinfo_destroy_slabs();
2649out: 2647out:
2650 kfree(sbi->s_mb_offsets); 2648 kfree(sbi->s_mb_offsets);
2651 sbi->s_mb_offsets = NULL; 2649 sbi->s_mb_offsets = NULL;
@@ -2878,6 +2876,7 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac,
2878 if (!bitmap_bh) 2876 if (!bitmap_bh)
2879 goto out_err; 2877 goto out_err;
2880 2878
2879 BUFFER_TRACE(bitmap_bh, "getting write access");
2881 err = ext4_journal_get_write_access(handle, bitmap_bh); 2880 err = ext4_journal_get_write_access(handle, bitmap_bh);
2882 if (err) 2881 if (err)
2883 goto out_err; 2882 goto out_err;
@@ -2890,6 +2889,7 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac,
2890 ext4_debug("using block group %u(%d)\n", ac->ac_b_ex.fe_group, 2889 ext4_debug("using block group %u(%d)\n", ac->ac_b_ex.fe_group,
2891 ext4_free_group_clusters(sb, gdp)); 2890 ext4_free_group_clusters(sb, gdp));
2892 2891
2892 BUFFER_TRACE(gdp_bh, "get_write_access");
2893 err = ext4_journal_get_write_access(handle, gdp_bh); 2893 err = ext4_journal_get_write_access(handle, gdp_bh);
2894 if (err) 2894 if (err)
2895 goto out_err; 2895 goto out_err;
@@ -3147,7 +3147,7 @@ ext4_mb_normalize_request(struct ext4_allocation_context *ac,
3147 } 3147 }
3148 BUG_ON(start + size <= ac->ac_o_ex.fe_logical && 3148 BUG_ON(start + size <= ac->ac_o_ex.fe_logical &&
3149 start > ac->ac_o_ex.fe_logical); 3149 start > ac->ac_o_ex.fe_logical);
3150 BUG_ON(size <= 0 || size > EXT4_CLUSTERS_PER_GROUP(ac->ac_sb)); 3150 BUG_ON(size <= 0 || size > EXT4_BLOCKS_PER_GROUP(ac->ac_sb));
3151 3151
3152 /* now prepare goal request */ 3152 /* now prepare goal request */
3153 3153