--- linux-2.4.19.old/fs/ext3/ialloc.c 2002-10-15 14:18:59.000000000 +0200 +++ linux-2.4.19.new/fs/ext3/ialloc.c 2002-10-15 14:16:34.000000000 +0200 @@ -510,7 +510,9 @@ inode->i_generation = sb->u.ext3_sb.s_next_generation++; inode->u.ext3_i.i_state = EXT3_STATE_NEW; - + err = ext3_mark_inode_dirty(handle, inode); + if (err) goto fail; + unlock_super (sb); if(DQUOT_ALLOC_INODE(inode)) { DQUOT_DROP(inode); @@ -522,12 +524,6 @@ DQUOT_FREE_INODE(inode); goto fail2; } - err = ext3_mark_inode_dirty(handle, inode); - if (err) { - DQUOT_FREE_INODE(inode); - goto fail2; - } - ext3_debug ("allocating inode %lu\n", inode->i_ino); return inode; diff -Nur --exclude='*.orig' linux-2.4.19.old/fs/ext2/ialloc.c linux-2.4.19.new/fs/ext2/ialloc.c --- linux-2.4.19.old/fs/ext2/ialloc.c 2002-10-15 15:32:24.000000000 +0200 +++ linux-2.4.19.new/fs/ext2/ialloc.c 2002-10-15 15:32:16.000000000 +0200 @@ -410,7 +410,6 @@ DQUOT_FREE_INODE(inode); goto fail3; } - mark_inode_dirty(inode); ext2_debug ("allocating inode %lu\n", inode->i_ino); return inode; --- linux-2.4.19/fs/ext3/file.c 2002-10-15 22:39:06.000000000 +0200 +++ linux-2.4.19.new/fs/ext3/file.c 2002-10-15 22:34:04.000000000 +0200 @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include --- linux-2.4.19/include/linux/ext2_acl.h 2002-10-15 22:47:09.000000000 +0200 +++ linux-2.4.19.new/include/linux/ext2_acl.h 2002-10-15 22:30:58.000000000 +0200 @@ -87,6 +87,7 @@ static inline int ext2_init_acl (struct inode *inode, struct inode *dir) { inode->i_mode &= ~current->fs->umask; + mark_inode_dirty(inode); return 0; } --- linux-2.4.19/include/linux/ext3_acl.h 2002-10-15 22:47:16.000000000 +0200 +++ linux-2.4.19.new/include/linux/ext3_acl.h 2002-10-15 22:30:37.000000000 +0200 @@ -90,6 +90,7 @@ ext3_init_acl(handle_t *handle, struct inode *inode, struct inode *dir) { inode->i_mode &= ~current->fs->umask; + ext3_mark_inode_dirty(handle, inode); return 0; }