aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/ioctl.c
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2013-01-13 08:41:45 -0500
committerTheodore Ts'o <tytso@mit.edu>2013-01-13 08:41:45 -0500
commit7f5118629f74b82bd4ba5e47415d1b4dcb940241 (patch)
tree274a76ed1ddd6c19de793c762d04f6f1b6fc4da0 /fs/ext4/ioctl.c
parent15b49132fc972c63894592f218ea5a9a61b1a18f (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.c9
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);
316group_add_out: 319group_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
391resizefs_out: 400resizefs_out:
392 ext4_resize_end(sb); 401 ext4_resize_end(sb);
393 return err; 402 return err;