./fs/ext3/namei.c | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) Index: linux-2.4.19.SuSE/./fs/ext3/namei.c =================================================================== --- linux-2.4.19.SuSE.orig/./fs/ext3/namei.c Sun Nov 16 01:02:51 2003 +++ linux-2.4.19.SuSE/./fs/ext3/namei.c Sun Nov 16 01:14:50 2003 @@ -1523,8 +1523,11 @@ { int err = ext3_add_entry(handle, dentry, inode); if (!err) { - d_instantiate(dentry, inode); - return 0; + err = ext3_mark_inode_dirty(handle, inode); + if (err == 0) { + d_instantiate(dentry, inode); + return 0; + } } ext3_dec_count(handle, inode); iput(inode); @@ -1560,7 +1563,6 @@ inode->i_op = &ext3_file_inode_operations; inode->i_fop = &ext3_file_operations; inode->i_mapping->a_ops = &ext3_aops; - ext3_mark_inode_dirty(handle, inode); err = ext3_add_nondir(handle, dentry, inode); } ext3_journal_stop(handle, dir); @@ -1590,7 +1592,6 @@ #ifdef CONFIG_EXT3_FS_XATTR inode->i_op = &ext3_special_inode_operations; #endif - ext3_mark_inode_dirty(handle, inode); err = ext3_add_nondir(handle, dentry, inode); } ext3_journal_stop(handle, dir); @@ -2039,7 +2040,6 @@ inode->i_size = l-1; } EXT3_I(inode)->i_disksize = inode->i_size; - ext3_mark_inode_dirty(handle, inode); err = ext3_add_nondir(handle, dentry, inode); out_stop: ext3_journal_stop(handle, dir); @@ -2073,7 +2073,6 @@ ext3_inc_count(handle, inode); atomic_inc(&inode->i_count); - ext3_mark_inode_dirty(handle, inode); err = ext3_add_nondir(handle, dentry, inode); ext3_journal_stop(handle, dir); return err;