@ -1922,22 +1922,20 @@ static int btrfs_finish_ordered_io(struct btrfs_ordered_extent *ordered_extent)
if ( test_bit ( BTRFS_ORDERED_NOCOW , & ordered_extent - > flags ) ) {
BUG_ON ( ! list_empty ( & ordered_extent - > list ) ) ; /* Logic error */
ret = btrfs_ordered_update_i_size ( inode , 0 , ordered_extent ) ;
if ( ! ret ) {
if ( nolock )
trans = btrfs_join_transaction_nolock ( root ) ;
else
trans = btrfs_join_transaction ( root ) ;
if ( IS_ERR ( trans ) ) {
ret = PTR_ERR ( trans ) ;
trans = NULL ;
goto out ;
}
trans - > block_rsv = & root - > fs_info - > delalloc_block_rsv ;
ret = btrfs_update_inode_fallback ( trans , root , inode ) ;
if ( ret ) /* -ENOMEM or corruption */
btrfs_abort_transaction ( trans , root , ret ) ;
btrfs_ordered_update_i_size ( inode , 0 , ordered_extent ) ;
if ( nolock )
trans = btrfs_join_transaction_nolock ( root ) ;
else
trans = btrfs_join_transaction ( root ) ;
if ( IS_ERR ( trans ) ) {
ret = PTR_ERR ( trans ) ;
trans = NULL ;
goto out ;
}
trans - > block_rsv = & root - > fs_info - > delalloc_block_rsv ;
ret = btrfs_update_inode_fallback ( trans , root , inode ) ;
if ( ret ) /* -ENOMEM or corruption */
btrfs_abort_transaction ( trans , root , ret ) ;
goto out ;
}
@ -1986,15 +1984,11 @@ static int btrfs_finish_ordered_io(struct btrfs_ordered_extent *ordered_extent)
add_pending_csums ( trans , inode , ordered_extent - > file_offset ,
& ordered_extent - > list ) ;
ret = btrfs_ordered_update_i_size ( inode , 0 , ordered_extent ) ;
if ( ! ret | | ! test_bit ( BTRFS_ORDERED_PREALLOC , & ordered_extent - > flags ) ) {
ret = btrfs_update_inode_fallback ( trans , root , inode ) ;
if ( ret ) { /* -ENOMEM or corruption */
btrfs_abort_transaction ( trans , root , ret ) ;
goto out_unlock ;
}
} else {
btrfs_set_inode_last_trans ( trans , inode ) ;
btrfs_ordered_update_i_size ( inode , 0 , ordered_extent ) ;
ret = btrfs_update_inode_fallback ( trans , root , inode ) ;
if ( ret ) { /* -ENOMEM or corruption */
btrfs_abort_transaction ( trans , root , ret ) ;
goto out_unlock ;
}
ret = 0 ;
out_unlock :