diff options
author | Yongqiang Yang <xiaoqiangnk@gmail.com> | 2012-01-04 23:09:48 +0100 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2012-01-04 23:09:48 +0100 |
commit | d89651c8e222b2d2797bf66d4eb7064459f4f4f4 (patch) | |
tree | 831f27a1758bceebb52fa00a642ce063ca40b2a3 /fs/ext4 | |
parent | ext4: add new online resize interface (diff) | |
download | linux-d89651c8e222b2d2797bf66d4eb7064459f4f4f4.tar.xz linux-d89651c8e222b2d2797bf66d4eb7064459f4f4f4.zip |
ext4: let ext4_group_extend() use common code
ext4_group_extend_no_check() is moved out from ext4_group_extend(),
this patch lets ext4_group_extend() call ext4_group_extentd_no_check()
instead.
Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/resize.c | 41 |
1 files changed, 2 insertions, 39 deletions
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index 5fe2a013ee65..eba706d9276a 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c @@ -1795,8 +1795,7 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, ext4_grpblk_t last; ext4_grpblk_t add; struct buffer_head *bh; - handle_t *handle; - int err, err2; + int err; ext4_group_t group; o_blocks_count = ext4_blocks_count(es); @@ -1852,43 +1851,7 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, } brelse(bh); - /* We will update the superblock, one block bitmap, and - * one group descriptor via ext4_free_blocks(). - */ - handle = ext4_journal_start_sb(sb, 3); - if (IS_ERR(handle)) { - err = PTR_ERR(handle); - ext4_warning(sb, "error %d on journal start", err); - goto exit_put; - } - - if ((err = ext4_journal_get_write_access(handle, - EXT4_SB(sb)->s_sbh))) { - ext4_warning(sb, "error %d on journal write access", err); - ext4_journal_stop(handle); - goto exit_put; - } - ext4_blocks_count_set(es, o_blocks_count + add); - ext4_debug("freeing blocks %llu through %llu\n", o_blocks_count, - o_blocks_count + add); - /* We add the blocks to the bitmap and set the group need init bit */ - err = ext4_group_add_blocks(handle, sb, o_blocks_count, add); - ext4_handle_dirty_super(handle, sb); - ext4_debug("freed blocks %llu through %llu\n", o_blocks_count, - o_blocks_count + add); - err2 = ext4_journal_stop(handle); - if (!err && err2) - err = err2; - - if (err) - goto exit_put; - - if (test_opt(sb, DEBUG)) - printk(KERN_DEBUG "EXT4-fs: extended group to %llu blocks\n", - ext4_blocks_count(es)); - update_backups(sb, EXT4_SB(sb)->s_sbh->b_blocknr, (char *)es, - sizeof(struct ext4_super_block)); -exit_put: + err = ext4_group_extend_no_check(sb, o_blocks_count, add); return err; } /* ext4_group_extend */ |