diff options
author | Theodore Ts'o <tytso@mit.edu> | 2013-01-13 08:41:45 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2013-01-13 08:41:45 -0500 |
commit | 7f5118629f74b82bd4ba5e47415d1b4dcb940241 (patch) | |
tree | 274a76ed1ddd6c19de793c762d04f6f1b6fc4da0 /fs/ext4/ioctl.c | |
parent | 15b49132fc972c63894592f218ea5a9a61b1a18f (diff) |
ext4: trigger the lazy inode table initialization after resize
After we have finished extending the file system, we need to trigger a
the lazy inode table thread to zero out the inode tables.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/ioctl.c')
-rw-r--r-- | fs/ext4/ioctl.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 5747f52f7c72..4784ac244fc6 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c | |||
@@ -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; |