aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/btrfs/inode.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 65474d95f26f..a8586e10953c 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -2904,7 +2904,7 @@ out:
2904 if (!err) 2904 if (!err)
2905 err = btrfs_block_rsv_migrate(trans->block_rsv, 2905 err = btrfs_block_rsv_migrate(trans->block_rsv,
2906 &root->fs_info->global_block_rsv, 2906 &root->fs_info->global_block_rsv,
2907 btrfs_calc_trans_metadata_size(root, 1)); 2907 trans->bytes_reserved);
2908 2908
2909 if (err) { 2909 if (err) {
2910 btrfs_end_transaction(trans, root); 2910 btrfs_end_transaction(trans, root);
@@ -2920,6 +2920,9 @@ static void __unlink_end_trans(struct btrfs_trans_handle *trans,
2920 struct btrfs_root *root) 2920 struct btrfs_root *root)
2921{ 2921{
2922 if (trans->block_rsv == &root->fs_info->global_block_rsv) { 2922 if (trans->block_rsv == &root->fs_info->global_block_rsv) {
2923 btrfs_block_rsv_release(root, trans->block_rsv,
2924 trans->bytes_reserved);
2925 trans->block_rsv = &root->fs_info->trans_block_rsv;
2923 BUG_ON(!root->fs_info->enospc_unlink); 2926 BUG_ON(!root->fs_info->enospc_unlink);
2924 root->fs_info->enospc_unlink = 0; 2927 root->fs_info->enospc_unlink = 0;
2925 } 2928 }