diff options
Diffstat (limited to 'fs/ext4/ioctl.c')
-rw-r--r-- | fs/ext4/ioctl.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 5747f52f7c72..31f4f56a32d6 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c | |||
@@ -104,7 +104,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
104 | } else if (oldflags & EXT4_EOFBLOCKS_FL) | 104 | } else if (oldflags & EXT4_EOFBLOCKS_FL) |
105 | ext4_truncate(inode); | 105 | ext4_truncate(inode); |
106 | 106 | ||
107 | handle = ext4_journal_start(inode, 1); | 107 | handle = ext4_journal_start(inode, EXT4_HT_INODE, 1); |
108 | if (IS_ERR(handle)) { | 108 | if (IS_ERR(handle)) { |
109 | err = PTR_ERR(handle); | 109 | err = PTR_ERR(handle); |
110 | goto flags_out; | 110 | goto flags_out; |
@@ -173,7 +173,7 @@ flags_out: | |||
173 | } | 173 | } |
174 | 174 | ||
175 | mutex_lock(&inode->i_mutex); | 175 | mutex_lock(&inode->i_mutex); |
176 | handle = ext4_journal_start(inode, 1); | 176 | handle = ext4_journal_start(inode, EXT4_HT_INODE, 1); |
177 | if (IS_ERR(handle)) { | 177 | if (IS_ERR(handle)) { |
178 | err = PTR_ERR(handle); | 178 | err = PTR_ERR(handle); |
179 | goto unlock_out; | 179 | goto unlock_out; |
@@ -313,6 +313,9 @@ mext_out: | |||
313 | if (err == 0) | 313 | if (err == 0) |
314 | err = err2; | 314 | err = err2; |
315 | mnt_drop_write_file(filp); | 315 | mnt_drop_write_file(filp); |
316 | if (!err && ext4_has_group_desc_csum(sb) && | ||
317 | test_opt(sb, INIT_INODE_TABLE)) | ||
318 | err = ext4_register_li_request(sb, input.group); | ||
316 | group_add_out: | 319 | group_add_out: |
317 | ext4_resize_end(sb); | 320 | ext4_resize_end(sb); |
318 | return err; | 321 | return err; |
@@ -358,6 +361,7 @@ group_add_out: | |||
358 | ext4_fsblk_t n_blocks_count; | 361 | ext4_fsblk_t n_blocks_count; |
359 | struct super_block *sb = inode->i_sb; | 362 | struct super_block *sb = inode->i_sb; |
360 | int err = 0, err2 = 0; | 363 | int err = 0, err2 = 0; |
364 | ext4_group_t o_group = EXT4_SB(sb)->s_groups_count; | ||
361 | 365 | ||
362 | if (EXT4_HAS_RO_COMPAT_FEATURE(sb, | 366 | if (EXT4_HAS_RO_COMPAT_FEATURE(sb, |
363 | EXT4_FEATURE_RO_COMPAT_BIGALLOC)) { | 367 | EXT4_FEATURE_RO_COMPAT_BIGALLOC)) { |
@@ -388,6 +392,11 @@ group_add_out: | |||
388 | if (err == 0) | 392 | if (err == 0) |
389 | err = err2; | 393 | err = err2; |
390 | mnt_drop_write_file(filp); | 394 | mnt_drop_write_file(filp); |
395 | if (!err && (o_group > EXT4_SB(sb)->s_groups_count) && | ||
396 | ext4_has_group_desc_csum(sb) && | ||
397 | test_opt(sb, INIT_INODE_TABLE)) | ||
398 | err = ext4_register_li_request(sb, o_group); | ||
399 | |||
391 | resizefs_out: | 400 | resizefs_out: |
392 | ext4_resize_end(sb); | 401 | ext4_resize_end(sb); |
393 | return err; | 402 | return err; |