mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
btrfs: introduce extent allocation policy
This commit introduces extent allocation policy for btrfs. This policy controls how btrfs allocate an extents from block groups. There is no functional change introduced with this commit. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
6aafb30384
commit
cb2f96f8ab
@ -3427,6 +3427,10 @@ btrfs_release_block_group(struct btrfs_block_group *cache,
|
|||||||
btrfs_put_block_group(cache);
|
btrfs_put_block_group(cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum btrfs_extent_allocation_policy {
|
||||||
|
BTRFS_EXTENT_ALLOC_CLUSTERED,
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Structure used internally for find_free_extent() function. Wraps needed
|
* Structure used internally for find_free_extent() function. Wraps needed
|
||||||
* parameters.
|
* parameters.
|
||||||
@ -3478,6 +3482,9 @@ struct find_free_extent_ctl {
|
|||||||
|
|
||||||
/* Found result */
|
/* Found result */
|
||||||
u64 found_offset;
|
u64 found_offset;
|
||||||
|
|
||||||
|
/* Allocation policy */
|
||||||
|
enum btrfs_extent_allocation_policy policy;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -3815,6 +3822,7 @@ static noinline int find_free_extent(struct btrfs_fs_info *fs_info,
|
|||||||
ffe_ctl.have_caching_bg = false;
|
ffe_ctl.have_caching_bg = false;
|
||||||
ffe_ctl.orig_have_caching_bg = false;
|
ffe_ctl.orig_have_caching_bg = false;
|
||||||
ffe_ctl.found_offset = 0;
|
ffe_ctl.found_offset = 0;
|
||||||
|
ffe_ctl.policy = BTRFS_EXTENT_ALLOC_CLUSTERED;
|
||||||
|
|
||||||
ins->type = BTRFS_EXTENT_ITEM_KEY;
|
ins->type = BTRFS_EXTENT_ITEM_KEY;
|
||||||
ins->objectid = 0;
|
ins->objectid = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user