mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
bcachefs: kill replicas_sectors arg to __trigger_extent()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
92caf17189
commit
56e5c7f65f
|
|
@ -740,8 +740,7 @@ static int bch2_trigger_stripe_ptr(struct btree_trans *trans,
|
|||
static int __trigger_extent(struct btree_trans *trans,
|
||||
enum btree_id btree_id, unsigned level,
|
||||
struct bkey_s_c k,
|
||||
enum btree_iter_update_trigger_flags flags,
|
||||
s64 *replicas_sectors)
|
||||
enum btree_iter_update_trigger_flags flags)
|
||||
{
|
||||
bool gc = flags & BTREE_TRIGGER_gc;
|
||||
struct bkey_ptrs_c ptrs = bch2_bkey_ptrs_c(k);
|
||||
|
|
@ -752,6 +751,8 @@ static int __trigger_extent(struct btree_trans *trans,
|
|||
: BCH_DATA_user;
|
||||
int ret = 0;
|
||||
|
||||
s64 replicas_sectors = 0;
|
||||
|
||||
struct disk_accounting_pos acc_replicas_key;
|
||||
memset(&acc_replicas_key, 0, sizeof(acc_replicas_key));
|
||||
acc_replicas_key.type = BCH_DISK_ACCOUNTING_replicas;
|
||||
|
|
@ -778,7 +779,7 @@ static int __trigger_extent(struct btree_trans *trans,
|
|||
if (ret)
|
||||
return ret;
|
||||
} else if (!p.has_ec) {
|
||||
*replicas_sectors += disk_sectors;
|
||||
replicas_sectors += disk_sectors;
|
||||
replicas_entry_add_dev(&acc_replicas_key.replicas, p.ptr.dev);
|
||||
} else {
|
||||
ret = bch2_trigger_stripe_ptr(trans, k, p, data_type, disk_sectors, flags);
|
||||
|
|
@ -816,13 +817,13 @@ static int __trigger_extent(struct btree_trans *trans,
|
|||
}
|
||||
|
||||
if (acc_replicas_key.replicas.nr_devs) {
|
||||
ret = bch2_disk_accounting_mod(trans, &acc_replicas_key, replicas_sectors, 1, gc);
|
||||
ret = bch2_disk_accounting_mod(trans, &acc_replicas_key, &replicas_sectors, 1, gc);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (acc_replicas_key.replicas.nr_devs && !level && k.k->p.snapshot) {
|
||||
ret = bch2_disk_accounting_mod2_nr(trans, gc, replicas_sectors, 1, snapshot, k.k->p.snapshot);
|
||||
ret = bch2_disk_accounting_mod2_nr(trans, gc, &replicas_sectors, 1, snapshot, k.k->p.snapshot);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -838,7 +839,7 @@ static int __trigger_extent(struct btree_trans *trans,
|
|||
}
|
||||
|
||||
if (level) {
|
||||
ret = bch2_disk_accounting_mod2_nr(trans, gc, replicas_sectors, 1, btree, btree_id);
|
||||
ret = bch2_disk_accounting_mod2_nr(trans, gc, &replicas_sectors, 1, btree, btree_id);
|
||||
if (ret)
|
||||
return ret;
|
||||
} else {
|
||||
|
|
@ -847,7 +848,7 @@ static int __trigger_extent(struct btree_trans *trans,
|
|||
s64 v[3] = {
|
||||
insert ? 1 : -1,
|
||||
insert ? k.k->size : -((s64) k.k->size),
|
||||
*replicas_sectors,
|
||||
replicas_sectors,
|
||||
};
|
||||
ret = bch2_disk_accounting_mod2(trans, gc, v, inum, k.k->p.inode);
|
||||
if (ret)
|
||||
|
|
@ -879,20 +880,16 @@ int bch2_trigger_extent(struct btree_trans *trans,
|
|||
return 0;
|
||||
|
||||
if (flags & (BTREE_TRIGGER_transactional|BTREE_TRIGGER_gc)) {
|
||||
s64 old_replicas_sectors = 0, new_replicas_sectors = 0;
|
||||
|
||||
if (old.k->type) {
|
||||
int ret = __trigger_extent(trans, btree, level, old,
|
||||
flags & ~BTREE_TRIGGER_insert,
|
||||
&old_replicas_sectors);
|
||||
flags & ~BTREE_TRIGGER_insert);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (new.k->type) {
|
||||
int ret = __trigger_extent(trans, btree, level, new.s_c,
|
||||
flags & ~BTREE_TRIGGER_overwrite,
|
||||
&new_replicas_sectors);
|
||||
flags & ~BTREE_TRIGGER_overwrite);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user