aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/ialloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext4/ialloc.c')
-rw-r--r--fs/ext4/ialloc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
index 34d39ae966f7..e17a6c918d72 100644
--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -615,6 +615,17 @@ got:
615 ext4_std_error(sb, err); 615 ext4_std_error(sb, err);
616 goto fail_free_drop; 616 goto fail_free_drop;
617 } 617 }
618 if (test_opt(sb, EXTENTS)) {
619 EXT4_I(inode)->i_flags |= EXT4_EXTENTS_FL;
620 ext4_ext_tree_init(handle, inode);
621 if (!EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_EXTENTS)) {
622 err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
623 if (err) goto fail;
624 EXT4_SET_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_EXTENTS);
625 BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "call ext4_journal_dirty_metadata");
626 err = ext4_journal_dirty_metadata(handle, EXT4_SB(sb)->s_sbh);
627 }
628 }
618 629
619 ext4_debug("allocating inode %lu\n", inode->i_ino); 630 ext4_debug("allocating inode %lu\n", inode->i_ino);
620 goto really_out; 631 goto really_out;