btrfs: drop fs_info argument from btrfs_update_space_info_*()

Since commit e1e577aafe41 ("btrfs: store fs_info in space_info"), we have
the fs_info in a space_info. So, we can drop fs_info argument from
btrfs_update_space_info_*. There is no behavior change.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.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:
Naohiro Aota 2024-11-14 17:04:28 +09:00 committed by David Sterba
parent 3704db1013
commit 7de9ca1f30
9 changed files with 26 additions and 45 deletions

View file

@ -1223,7 +1223,7 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans,
block_group->space_info->total_bytes -= block_group->length; block_group->space_info->total_bytes -= block_group->length;
block_group->space_info->bytes_readonly -= block_group->space_info->bytes_readonly -=
(block_group->length - block_group->zone_unusable); (block_group->length - block_group->zone_unusable);
btrfs_space_info_update_bytes_zone_unusable(fs_info, block_group->space_info, btrfs_space_info_update_bytes_zone_unusable(block_group->space_info,
-block_group->zone_unusable); -block_group->zone_unusable);
block_group->space_info->disk_total -= block_group->length * factor; block_group->space_info->disk_total -= block_group->length * factor;
@ -1396,8 +1396,7 @@ static int inc_block_group_ro(struct btrfs_block_group *cache, int force)
if (btrfs_is_zoned(cache->fs_info)) { if (btrfs_is_zoned(cache->fs_info)) {
/* Migrate zone_unusable bytes to readonly */ /* Migrate zone_unusable bytes to readonly */
sinfo->bytes_readonly += cache->zone_unusable; sinfo->bytes_readonly += cache->zone_unusable;
btrfs_space_info_update_bytes_zone_unusable(cache->fs_info, sinfo, btrfs_space_info_update_bytes_zone_unusable(sinfo, -cache->zone_unusable);
-cache->zone_unusable);
cache->zone_unusable = 0; cache->zone_unusable = 0;
} }
cache->ro++; cache->ro++;
@ -1645,8 +1644,7 @@ void btrfs_delete_unused_bgs(struct btrfs_fs_info *fs_info)
spin_lock(&space_info->lock); spin_lock(&space_info->lock);
spin_lock(&block_group->lock); spin_lock(&block_group->lock);
btrfs_space_info_update_bytes_pinned(fs_info, space_info, btrfs_space_info_update_bytes_pinned(space_info, -block_group->pinned);
-block_group->pinned);
space_info->bytes_readonly += block_group->pinned; space_info->bytes_readonly += block_group->pinned;
block_group->pinned = 0; block_group->pinned = 0;
@ -3060,8 +3058,7 @@ void btrfs_dec_block_group_ro(struct btrfs_block_group *cache)
(cache->alloc_offset - cache->used - cache->pinned - (cache->alloc_offset - cache->used - cache->pinned -
cache->reserved) + cache->reserved) +
(cache->length - cache->zone_capacity); (cache->length - cache->zone_capacity);
btrfs_space_info_update_bytes_zone_unusable(cache->fs_info, sinfo, btrfs_space_info_update_bytes_zone_unusable(sinfo, cache->zone_unusable);
cache->zone_unusable);
sinfo->bytes_readonly -= cache->zone_unusable; sinfo->bytes_readonly -= cache->zone_unusable;
} }
num_bytes = cache->length - cache->reserved - num_bytes = cache->length - cache->reserved -
@ -3699,7 +3696,7 @@ int btrfs_update_block_group(struct btrfs_trans_handle *trans,
old_val -= num_bytes; old_val -= num_bytes;
cache->used = old_val; cache->used = old_val;
cache->pinned += num_bytes; cache->pinned += num_bytes;
btrfs_space_info_update_bytes_pinned(info, space_info, num_bytes); btrfs_space_info_update_bytes_pinned(space_info, num_bytes);
space_info->bytes_used -= num_bytes; space_info->bytes_used -= num_bytes;
space_info->disk_used -= num_bytes * factor; space_info->disk_used -= num_bytes * factor;
if (READ_ONCE(space_info->periodic_reclaim)) if (READ_ONCE(space_info->periodic_reclaim))
@ -3781,8 +3778,7 @@ int btrfs_add_reserved_bytes(struct btrfs_block_group *cache,
space_info->bytes_reserved += num_bytes; space_info->bytes_reserved += num_bytes;
trace_btrfs_space_reservation(cache->fs_info, "space_info", trace_btrfs_space_reservation(cache->fs_info, "space_info",
space_info->flags, num_bytes, 1); space_info->flags, num_bytes, 1);
btrfs_space_info_update_bytes_may_use(cache->fs_info, btrfs_space_info_update_bytes_may_use(space_info, -ram_bytes);
space_info, -ram_bytes);
if (delalloc) if (delalloc)
cache->delalloc_bytes += num_bytes; cache->delalloc_bytes += num_bytes;

View file

@ -150,9 +150,7 @@ static u64 block_rsv_release_bytes(struct btrfs_fs_info *fs_info,
spin_unlock(&dest->lock); spin_unlock(&dest->lock);
} }
if (num_bytes) if (num_bytes)
btrfs_space_info_free_bytes_may_use(fs_info, btrfs_space_info_free_bytes_may_use(space_info, num_bytes);
space_info,
num_bytes);
} }
if (qgroup_to_release_ret) if (qgroup_to_release_ret)
*qgroup_to_release_ret = qgroup_to_release; *qgroup_to_release_ret = qgroup_to_release;
@ -383,13 +381,11 @@ void btrfs_update_global_block_rsv(struct btrfs_fs_info *fs_info)
if (block_rsv->reserved < block_rsv->size) { if (block_rsv->reserved < block_rsv->size) {
num_bytes = block_rsv->size - block_rsv->reserved; num_bytes = block_rsv->size - block_rsv->reserved;
btrfs_space_info_update_bytes_may_use(fs_info, sinfo, btrfs_space_info_update_bytes_may_use(sinfo, num_bytes);
num_bytes);
block_rsv->reserved = block_rsv->size; block_rsv->reserved = block_rsv->size;
} else if (block_rsv->reserved > block_rsv->size) { } else if (block_rsv->reserved > block_rsv->size) {
num_bytes = block_rsv->reserved - block_rsv->size; num_bytes = block_rsv->reserved - block_rsv->size;
btrfs_space_info_update_bytes_may_use(fs_info, sinfo, btrfs_space_info_update_bytes_may_use(sinfo, -num_bytes);
-num_bytes);
block_rsv->reserved = block_rsv->size; block_rsv->reserved = block_rsv->size;
btrfs_try_granting_tickets(fs_info, sinfo); btrfs_try_granting_tickets(fs_info, sinfo);
} }

View file

@ -176,7 +176,7 @@ void btrfs_free_reserved_data_space_noquota(struct btrfs_fs_info *fs_info,
ASSERT(IS_ALIGNED(len, fs_info->sectorsize)); ASSERT(IS_ALIGNED(len, fs_info->sectorsize));
data_sinfo = fs_info->data_sinfo; data_sinfo = fs_info->data_sinfo;
btrfs_space_info_free_bytes_may_use(fs_info, data_sinfo, len); btrfs_space_info_free_bytes_may_use(data_sinfo, len);
} }
/* /*

View file

@ -257,7 +257,7 @@ int btrfs_delayed_refs_rsv_refill(struct btrfs_fs_info *fs_info,
spin_unlock(&block_rsv->lock); spin_unlock(&block_rsv->lock);
if (to_free > 0) if (to_free > 0)
btrfs_space_info_free_bytes_may_use(fs_info, space_info, to_free); btrfs_space_info_free_bytes_may_use(space_info, to_free);
if (refilled_bytes > 0) if (refilled_bytes > 0)
trace_btrfs_space_reservation(fs_info, "delayed_refs_rsv", 0, trace_btrfs_space_reservation(fs_info, "delayed_refs_rsv", 0,
@ -1311,8 +1311,7 @@ void btrfs_destroy_delayed_refs(struct btrfs_transaction *trans)
spin_lock(&bg->space_info->lock); spin_lock(&bg->space_info->lock);
spin_lock(&bg->lock); spin_lock(&bg->lock);
bg->pinned += head->num_bytes; bg->pinned += head->num_bytes;
btrfs_space_info_update_bytes_pinned(fs_info, btrfs_space_info_update_bytes_pinned(bg->space_info,
bg->space_info,
head->num_bytes); head->num_bytes);
bg->reserved -= head->num_bytes; bg->reserved -= head->num_bytes;
bg->space_info->bytes_reserved -= head->num_bytes; bg->space_info->bytes_reserved -= head->num_bytes;

View file

@ -2547,13 +2547,10 @@ static int pin_down_extent(struct btrfs_trans_handle *trans,
struct btrfs_block_group *cache, struct btrfs_block_group *cache,
u64 bytenr, u64 num_bytes, int reserved) u64 bytenr, u64 num_bytes, int reserved)
{ {
struct btrfs_fs_info *fs_info = cache->fs_info;
spin_lock(&cache->space_info->lock); spin_lock(&cache->space_info->lock);
spin_lock(&cache->lock); spin_lock(&cache->lock);
cache->pinned += num_bytes; cache->pinned += num_bytes;
btrfs_space_info_update_bytes_pinned(fs_info, cache->space_info, btrfs_space_info_update_bytes_pinned(cache->space_info, num_bytes);
num_bytes);
if (reserved) { if (reserved) {
cache->reserved -= num_bytes; cache->reserved -= num_bytes;
cache->space_info->bytes_reserved -= num_bytes; cache->space_info->bytes_reserved -= num_bytes;
@ -2754,15 +2751,14 @@ static int unpin_extent_range(struct btrfs_fs_info *fs_info,
spin_lock(&space_info->lock); spin_lock(&space_info->lock);
spin_lock(&cache->lock); spin_lock(&cache->lock);
cache->pinned -= len; cache->pinned -= len;
btrfs_space_info_update_bytes_pinned(fs_info, space_info, -len); btrfs_space_info_update_bytes_pinned(space_info, -len);
space_info->max_extent_size = 0; space_info->max_extent_size = 0;
if (cache->ro) { if (cache->ro) {
space_info->bytes_readonly += len; space_info->bytes_readonly += len;
readonly = true; readonly = true;
} else if (btrfs_is_zoned(fs_info)) { } else if (btrfs_is_zoned(fs_info)) {
/* Need reset before reusing in a zoned block group */ /* Need reset before reusing in a zoned block group */
btrfs_space_info_update_bytes_zone_unusable(fs_info, space_info, btrfs_space_info_update_bytes_zone_unusable(space_info, len);
len);
readonly = true; readonly = true;
} }
spin_unlock(&cache->lock); spin_unlock(&cache->lock);

View file

@ -1809,7 +1809,7 @@ static int fallback_to_cow(struct btrfs_inode *inode,
bytes = range_bytes; bytes = range_bytes;
spin_lock(&sinfo->lock); spin_lock(&sinfo->lock);
btrfs_space_info_update_bytes_may_use(fs_info, sinfo, bytes); btrfs_space_info_update_bytes_may_use(sinfo, bytes);
spin_unlock(&sinfo->lock); spin_unlock(&sinfo->lock);
if (count > 0) if (count > 0)

View file

@ -316,7 +316,7 @@ void btrfs_add_bg_to_space_info(struct btrfs_fs_info *info,
found->bytes_used += block_group->used; found->bytes_used += block_group->used;
found->disk_used += block_group->used * factor; found->disk_used += block_group->used * factor;
found->bytes_readonly += block_group->bytes_super; found->bytes_readonly += block_group->bytes_super;
btrfs_space_info_update_bytes_zone_unusable(info, found, block_group->zone_unusable); btrfs_space_info_update_bytes_zone_unusable(found, block_group->zone_unusable);
if (block_group->length > 0) if (block_group->length > 0)
found->full = 0; found->full = 0;
btrfs_try_granting_tickets(info, found); btrfs_try_granting_tickets(info, found);
@ -489,9 +489,7 @@ again:
if ((used + ticket->bytes <= space_info->total_bytes) || if ((used + ticket->bytes <= space_info->total_bytes) ||
btrfs_can_overcommit(fs_info, space_info, ticket->bytes, btrfs_can_overcommit(fs_info, space_info, ticket->bytes,
flush)) { flush)) {
btrfs_space_info_update_bytes_may_use(fs_info, btrfs_space_info_update_bytes_may_use(space_info, ticket->bytes);
space_info,
ticket->bytes);
remove_ticket(space_info, ticket); remove_ticket(space_info, ticket);
ticket->bytes = 0; ticket->bytes = 0;
space_info->tickets_id++; space_info->tickets_id++;
@ -1690,8 +1688,7 @@ static int __reserve_bytes(struct btrfs_fs_info *fs_info,
if (!pending_tickets && if (!pending_tickets &&
((used + orig_bytes <= space_info->total_bytes) || ((used + orig_bytes <= space_info->total_bytes) ||
btrfs_can_overcommit(fs_info, space_info, orig_bytes, flush))) { btrfs_can_overcommit(fs_info, space_info, orig_bytes, flush))) {
btrfs_space_info_update_bytes_may_use(fs_info, space_info, btrfs_space_info_update_bytes_may_use(space_info, orig_bytes);
orig_bytes);
ret = 0; ret = 0;
} }
@ -1703,8 +1700,7 @@ static int __reserve_bytes(struct btrfs_fs_info *fs_info,
if (ret && unlikely(flush == BTRFS_RESERVE_FLUSH_EMERGENCY)) { if (ret && unlikely(flush == BTRFS_RESERVE_FLUSH_EMERGENCY)) {
used = btrfs_space_info_used(space_info, false); used = btrfs_space_info_used(space_info, false);
if (used + orig_bytes <= space_info->total_bytes) { if (used + orig_bytes <= space_info->total_bytes) {
btrfs_space_info_update_bytes_may_use(fs_info, space_info, btrfs_space_info_update_bytes_may_use(space_info, orig_bytes);
orig_bytes);
ret = 0; ret = 0;
} }
} }
@ -2099,7 +2095,7 @@ void btrfs_return_free_space(struct btrfs_space_info *space_info, u64 len)
u64 to_add = min(len, global_rsv->size - global_rsv->reserved); u64 to_add = min(len, global_rsv->size - global_rsv->reserved);
global_rsv->reserved += to_add; global_rsv->reserved += to_add;
btrfs_space_info_update_bytes_may_use(fs_info, space_info, to_add); btrfs_space_info_update_bytes_may_use(space_info, to_add);
if (global_rsv->reserved >= global_rsv->size) if (global_rsv->reserved >= global_rsv->size)
global_rsv->full = 1; global_rsv->full = 1;
len -= to_add; len -= to_add;

View file

@ -229,10 +229,10 @@ static inline bool btrfs_mixed_space_info(const struct btrfs_space_info *space_i
*/ */
#define DECLARE_SPACE_INFO_UPDATE(name, trace_name) \ #define DECLARE_SPACE_INFO_UPDATE(name, trace_name) \
static inline void \ static inline void \
btrfs_space_info_update_##name(struct btrfs_fs_info *fs_info, \ btrfs_space_info_update_##name(struct btrfs_space_info *sinfo, \
struct btrfs_space_info *sinfo, \
s64 bytes) \ s64 bytes) \
{ \ { \
struct btrfs_fs_info *fs_info = sinfo->fs_info; \
const u64 abs_bytes = (bytes < 0) ? -bytes : bytes; \ const u64 abs_bytes = (bytes < 0) ? -bytes : bytes; \
lockdep_assert_held(&sinfo->lock); \ lockdep_assert_held(&sinfo->lock); \
trace_update_##name(fs_info, sinfo, sinfo->name, bytes); \ trace_update_##name(fs_info, sinfo, sinfo->name, bytes); \
@ -275,13 +275,12 @@ int btrfs_can_overcommit(struct btrfs_fs_info *fs_info,
enum btrfs_reserve_flush_enum flush); enum btrfs_reserve_flush_enum flush);
static inline void btrfs_space_info_free_bytes_may_use( static inline void btrfs_space_info_free_bytes_may_use(
struct btrfs_fs_info *fs_info,
struct btrfs_space_info *space_info, struct btrfs_space_info *space_info,
u64 num_bytes) u64 num_bytes)
{ {
spin_lock(&space_info->lock); spin_lock(&space_info->lock);
btrfs_space_info_update_bytes_may_use(fs_info, space_info, -num_bytes); btrfs_space_info_update_bytes_may_use(space_info, -num_bytes);
btrfs_try_granting_tickets(fs_info, space_info); btrfs_try_granting_tickets(space_info->fs_info, space_info);
spin_unlock(&space_info->lock); spin_unlock(&space_info->lock);
} }
int btrfs_reserve_data_bytes(struct btrfs_fs_info *fs_info, u64 bytes, int btrfs_reserve_data_bytes(struct btrfs_fs_info *fs_info, u64 bytes,

View file

@ -795,8 +795,7 @@ alloc_fail:
if (num_bytes) if (num_bytes)
btrfs_block_rsv_release(fs_info, trans_rsv, num_bytes, NULL); btrfs_block_rsv_release(fs_info, trans_rsv, num_bytes, NULL);
if (delayed_refs_bytes) if (delayed_refs_bytes)
btrfs_space_info_free_bytes_may_use(fs_info, trans_rsv->space_info, btrfs_space_info_free_bytes_may_use(trans_rsv->space_info, delayed_refs_bytes);
delayed_refs_bytes);
reserve_fail: reserve_fail:
btrfs_qgroup_free_meta_prealloc(root, qgroup_reserved); btrfs_qgroup_free_meta_prealloc(root, qgroup_reserved);
return ERR_PTR(ret); return ERR_PTR(ret);