diff options
-rw-r--r-- | fs/btrfs/ctree.h | 3 | ||||
-rw-r--r-- | fs/btrfs/extent-tree.c | 23 | ||||
-rw-r--r-- | fs/btrfs/relocation.c | 2 |
3 files changed, 6 insertions, 22 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index c5ceba4078cc..58a06dea4791 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -774,9 +774,6 @@ struct btrfs_block_rsv { | |||
774 | u64 reserved; | 774 | u64 reserved; |
775 | struct btrfs_space_info *space_info; | 775 | struct btrfs_space_info *space_info; |
776 | spinlock_t lock; | 776 | spinlock_t lock; |
777 | atomic_t usage; | ||
778 | unsigned int priority:8; | ||
779 | unsigned int refill_used:1; | ||
780 | unsigned int full:1; | 777 | unsigned int full:1; |
781 | }; | 778 | }; |
782 | 779 | ||
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 30c0558eae84..5395cc639270 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -3659,8 +3659,6 @@ void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv) | |||
3659 | { | 3659 | { |
3660 | memset(rsv, 0, sizeof(*rsv)); | 3660 | memset(rsv, 0, sizeof(*rsv)); |
3661 | spin_lock_init(&rsv->lock); | 3661 | spin_lock_init(&rsv->lock); |
3662 | atomic_set(&rsv->usage, 1); | ||
3663 | rsv->priority = 6; | ||
3664 | } | 3662 | } |
3665 | 3663 | ||
3666 | struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_root *root) | 3664 | struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_root *root) |
@@ -3681,10 +3679,8 @@ struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_root *root) | |||
3681 | void btrfs_free_block_rsv(struct btrfs_root *root, | 3679 | void btrfs_free_block_rsv(struct btrfs_root *root, |
3682 | struct btrfs_block_rsv *rsv) | 3680 | struct btrfs_block_rsv *rsv) |
3683 | { | 3681 | { |
3684 | if (rsv && atomic_dec_and_test(&rsv->usage)) { | 3682 | btrfs_block_rsv_release(root, rsv, (u64)-1); |
3685 | btrfs_block_rsv_release(root, rsv, (u64)-1); | 3683 | kfree(rsv); |
3686 | kfree(rsv); | ||
3687 | } | ||
3688 | } | 3684 | } |
3689 | 3685 | ||
3690 | int btrfs_block_rsv_add(struct btrfs_trans_handle *trans, | 3686 | int btrfs_block_rsv_add(struct btrfs_trans_handle *trans, |
@@ -3734,13 +3730,10 @@ int btrfs_block_rsv_check(struct btrfs_trans_handle *trans, | |||
3734 | if (!ret) | 3730 | if (!ret) |
3735 | return 0; | 3731 | return 0; |
3736 | 3732 | ||
3737 | if (block_rsv->refill_used) { | 3733 | ret = reserve_metadata_bytes(trans, root, block_rsv, num_bytes, 0); |
3738 | ret = reserve_metadata_bytes(trans, root, block_rsv, | 3734 | if (!ret) { |
3739 | num_bytes, 0); | 3735 | block_rsv_add_bytes(block_rsv, num_bytes, 0); |
3740 | if (!ret) { | 3736 | return 0; |
3741 | block_rsv_add_bytes(block_rsv, num_bytes, 0); | ||
3742 | return 0; | ||
3743 | } | ||
3744 | } | 3737 | } |
3745 | 3738 | ||
3746 | if (commit_trans) { | 3739 | if (commit_trans) { |
@@ -3859,16 +3852,12 @@ static void init_global_block_rsv(struct btrfs_fs_info *fs_info) | |||
3859 | 3852 | ||
3860 | space_info = __find_space_info(fs_info, BTRFS_BLOCK_GROUP_SYSTEM); | 3853 | space_info = __find_space_info(fs_info, BTRFS_BLOCK_GROUP_SYSTEM); |
3861 | fs_info->chunk_block_rsv.space_info = space_info; | 3854 | fs_info->chunk_block_rsv.space_info = space_info; |
3862 | fs_info->chunk_block_rsv.priority = 10; | ||
3863 | 3855 | ||
3864 | space_info = __find_space_info(fs_info, BTRFS_BLOCK_GROUP_METADATA); | 3856 | space_info = __find_space_info(fs_info, BTRFS_BLOCK_GROUP_METADATA); |
3865 | fs_info->global_block_rsv.space_info = space_info; | 3857 | fs_info->global_block_rsv.space_info = space_info; |
3866 | fs_info->global_block_rsv.priority = 10; | ||
3867 | fs_info->global_block_rsv.refill_used = 1; | ||
3868 | fs_info->delalloc_block_rsv.space_info = space_info; | 3858 | fs_info->delalloc_block_rsv.space_info = space_info; |
3869 | fs_info->trans_block_rsv.space_info = space_info; | 3859 | fs_info->trans_block_rsv.space_info = space_info; |
3870 | fs_info->empty_block_rsv.space_info = space_info; | 3860 | fs_info->empty_block_rsv.space_info = space_info; |
3871 | fs_info->empty_block_rsv.priority = 10; | ||
3872 | 3861 | ||
3873 | fs_info->extent_root->block_rsv = &fs_info->global_block_rsv; | 3862 | fs_info->extent_root->block_rsv = &fs_info->global_block_rsv; |
3874 | fs_info->csum_root->block_rsv = &fs_info->global_block_rsv; | 3863 | fs_info->csum_root->block_rsv = &fs_info->global_block_rsv; |
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index 545b04358249..aeaed99e9cfe 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c | |||
@@ -3650,8 +3650,6 @@ int prepare_to_relocate(struct reloc_control *rc) | |||
3650 | if (ret) | 3650 | if (ret) |
3651 | return ret; | 3651 | return ret; |
3652 | 3652 | ||
3653 | rc->block_rsv->refill_used = 1; | ||
3654 | |||
3655 | memset(&rc->cluster, 0, sizeof(rc->cluster)); | 3653 | memset(&rc->cluster, 0, sizeof(rc->cluster)); |
3656 | rc->search_start = rc->block_group->key.objectid; | 3654 | rc->search_start = rc->block_group->key.objectid; |
3657 | rc->extents_found = 0; | 3655 | rc->extents_found = 0; |