@@ -3516,12 +3516,12 @@ struct clustered_alloc_info {
* Return 0 means we have found a location and set ffe_ctl->found_offset.
*/
static int find_free_extent_clustered(struct btrfs_block_group *bg,
- struct btrfs_free_cluster *last_ptr,
struct find_free_extent_ctl *ffe_ctl,
struct btrfs_block_group **cluster_bg_ret)
{
struct btrfs_block_group *cluster_bg;
struct clustered_alloc_info *clustered = ffe_ctl->alloc_info;
+ struct btrfs_free_cluster *last_ptr = clustered->last_ptr;
u64 aligned_cluster;
u64 offset;
int ret;
@@ -3621,10 +3621,10 @@ static int find_free_extent_clustered(struct btrfs_block_group *bg,
* Return -EAGAIN to inform caller that we need to re-search this block group
*/
static int find_free_extent_unclustered(struct btrfs_block_group *bg,
- struct btrfs_free_cluster *last_ptr,
struct find_free_extent_ctl *ffe_ctl)
{
struct clustered_alloc_info *clustered = ffe_ctl->alloc_info;
+ struct btrfs_free_cluster *last_ptr = clustered->last_ptr;
u64 offset;
/*
@@ -3691,16 +3691,13 @@ static int do_allocation_clustered(struct btrfs_block_group *block_group,
* Ok we want to try and use the cluster allocator, so lets look there
*/
if (clustered->last_ptr && clustered->use_cluster) {
- ret = find_free_extent_clustered(block_group,
- clustered->last_ptr, ffe_ctl,
- bg_ret);
+ ret = find_free_extent_clustered(block_group, ffe_ctl, bg_ret);
if (ret >= 0 || ret == -EAGAIN)
return ret;
/* ret == -ENOENT case falls through */
}
- return find_free_extent_unclustered(block_group, clustered->last_ptr,
- ffe_ctl);
+ return find_free_extent_unclustered(block_group, ffe_ctl);
}
static int do_allocation(struct btrfs_block_group *block_group,
Now that, find_free_extent_clustered() and find_free_extent_unclustered() can access "last_ptr" from the "clustered" variable. So, we can drop it from the arguments. Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com> --- fs/btrfs/extent-tree.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-)