@ -2362,7 +2362,9 @@ static int ext3_rename (struct inode * old_dir, struct dentry *old_dentry,
goto end_rename ;
} else {
BUFFER_TRACE ( new_bh , " get write access " ) ;
ext3_journal_get_write_access ( handle , new_bh ) ;
retval = ext3_journal_get_write_access ( handle , new_bh ) ;
if ( retval )
goto journal_error ;
new_de - > inode = cpu_to_le32 ( old_inode - > i_ino ) ;
if ( EXT3_HAS_INCOMPAT_FEATURE ( new_dir - > i_sb ,
EXT3_FEATURE_INCOMPAT_FILETYPE ) )
@ -2371,7 +2373,9 @@ static int ext3_rename (struct inode * old_dir, struct dentry *old_dentry,
new_dir - > i_ctime = new_dir - > i_mtime = CURRENT_TIME_SEC ;
ext3_mark_inode_dirty ( handle , new_dir ) ;
BUFFER_TRACE ( new_bh , " call ext3_journal_dirty_metadata " ) ;
ext3_journal_dirty_metadata ( handle , new_bh ) ;
retval = ext3_journal_dirty_metadata ( handle , new_bh ) ;
if ( retval )
goto journal_error ;
brelse ( new_bh ) ;
new_bh = NULL ;
}
@ -2420,10 +2424,17 @@ static int ext3_rename (struct inode * old_dir, struct dentry *old_dentry,
ext3_update_dx_flag ( old_dir ) ;
if ( dir_bh ) {
BUFFER_TRACE ( dir_bh , " get_write_access " ) ;
ext3_journal_get_write_access ( handle , dir_bh ) ;
retval = ext3_journal_get_write_access ( handle , dir_bh ) ;
if ( retval )
goto journal_error ;
PARENT_INO ( dir_bh - > b_data ) = cpu_to_le32 ( new_dir - > i_ino ) ;
BUFFER_TRACE ( dir_bh , " call ext3_journal_dirty_metadata " ) ;
ext3_journal_dirty_metadata ( handle , dir_bh ) ;
retval = ext3_journal_dirty_metadata ( handle , dir_bh ) ;
if ( retval ) {
journal_error :
ext3_std_error ( new_dir - > i_sb , retval ) ;
goto end_rename ;
}
drop_nlink ( old_dir ) ;
if ( new_inode ) {
drop_nlink ( new_inode ) ;