Skip to content

Commit

Permalink
ext4: mark inode dirty after initializing the extent tree
Browse files Browse the repository at this point in the history
We should mark the inode dirty only after initializing the extent
tree.  Also if we fail during extent initialization we need
to call DQUOT_FREE_INODE.

Signed-off-by: Aneesh Kumar K.V <[email protected]>
Signed-off-by: "Theodore Ts'o" <[email protected]>
  • Loading branch information
kvaneesh authored and tytso committed Apr 30, 2008
1 parent ef73772 commit 8753e88
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions fs/ext4/ialloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -739,11 +739,6 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode * dir, int mode)
if (err)
goto fail_free_drop;

err = ext4_mark_inode_dirty(handle, inode);
if (err) {
ext4_std_error(sb, err);
goto fail_free_drop;
}
if (test_opt(sb, EXTENTS)) {
/* set extent flag only for diretory, file and normal symlink*/
if (S_ISDIR(mode) || S_ISREG(mode) || S_ISLNK(mode)) {
Expand All @@ -752,10 +747,16 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode * dir, int mode)
err = ext4_update_incompat_feature(handle, sb,
EXT4_FEATURE_INCOMPAT_EXTENTS);
if (err)
goto fail;
goto fail_free_drop;
}
}

err = ext4_mark_inode_dirty(handle, inode);
if (err) {
ext4_std_error(sb, err);
goto fail_free_drop;
}

ext4_debug("allocating inode %lu\n", inode->i_ino);
goto really_out;
fail:
Expand Down

0 comments on commit 8753e88

Please sign in to comment.