|
@@ -6358,6 +6358,7 @@ static int pin_down_extent(struct btrfs_fs_info *fs_info,
|
|
|
|
|
|
trace_btrfs_space_reservation(fs_info, "pinned",
|
|
|
cache->space_info->flags, num_bytes, 1);
|
|
|
+ percpu_counter_add(&cache->space_info->total_bytes_pinned, num_bytes);
|
|
|
set_extent_dirty(fs_info->pinned_extents, bytenr,
|
|
|
bytenr + num_bytes - 1, GFP_NOFS | __GFP_NOFAIL);
|
|
|
return 0;
|
|
@@ -7204,6 +7205,7 @@ void btrfs_free_tree_block(struct btrfs_trans_handle *trans,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
+ pin = 0;
|
|
|
cache = btrfs_lookup_block_group(fs_info, buf->start);
|
|
|
|
|
|
if (btrfs_header_flag(buf, BTRFS_HEADER_FLAG_WRITTEN)) {
|
|
@@ -7219,7 +7221,6 @@ void btrfs_free_tree_block(struct btrfs_trans_handle *trans,
|
|
|
btrfs_free_reserved_bytes(cache, buf->len, 0);
|
|
|
btrfs_put_block_group(cache);
|
|
|
trace_btrfs_reserved_extent_free(fs_info, buf->start, buf->len);
|
|
|
- pin = 0;
|
|
|
}
|
|
|
out:
|
|
|
if (pin)
|