diff options
| -rw-r--r-- | fs/btrfs/inode.c | 5 |
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 | } |
