diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-08 16:03:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-08 16:03:35 -0400 |
commit | f8409abdc592e13cefbe4e4a24a84b3d5741e85f (patch) | |
tree | b016b7158eb080d59bf79605958cb746d545f56d /fs/ext4/mballoc.c | |
parent | b20dcab9d4589ef9918a13c888c5493945adfc13 (diff) | |
parent | bd9db175dde14b606265e0d37e8319d96fe1a58f (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.c | 8 |
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) | |||
2644 | out_free_locality_groups: | 2644 | out_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; |
2647 | out_free_groupinfo_slab: | ||
2648 | ext4_groupinfo_destroy_slabs(); | ||
2649 | out: | 2647 | out: |
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 | ||