Loading fs/bcachefs/buckets.c +10 −0 Original line number Diff line number Diff line Loading @@ -778,6 +778,16 @@ static int __trigger_extent(struct btree_trans *trans, return ret; } if (acc_replicas_key.replicas.nr_devs && !level && k.k->p.snapshot) { struct disk_accounting_pos acc_snapshot_key = { .type = BCH_DISK_ACCOUNTING_snapshot, .snapshot.id = k.k->p.snapshot, }; ret = bch2_disk_accounting_mod(trans, &acc_snapshot_key, &replicas_sectors, 1, gc); if (ret) return ret; } if (acct_compression_key.compression.type) { if (flags & BTREE_TRIGGER_overwrite) bch2_u64s_neg(compression_acct, ARRAY_SIZE(compression_acct)); Loading fs/bcachefs/disk_accounting.c +3 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,9 @@ void bch2_accounting_key_to_text(struct printbuf *out, struct disk_accounting_po case BCH_DISK_ACCOUNTING_compression: bch2_prt_compression_type(out, k->compression.type); break; case BCH_DISK_ACCOUNTING_snapshot: prt_printf(out, "id=%u", k->snapshot.id); break; } } Loading fs/bcachefs/disk_accounting_format.h +7 −1 Original line number Diff line number Diff line Loading @@ -100,7 +100,8 @@ static inline bool data_type_is_hidden(enum bch_data_type type) x(persistent_reserved, 1) \ x(replicas, 2) \ x(dev_data_type, 3) \ x(compression, 4) x(compression, 4) \ x(snapshot, 5) enum disk_accounting_type { #define x(f, nr) BCH_DISK_ACCOUNTING_##f = nr, Loading Loading @@ -129,6 +130,10 @@ struct bch_acct_compression { __u8 type; }; struct bch_acct_snapshot { __u32 id; }; struct disk_accounting_pos { union { struct { Loading @@ -140,6 +145,7 @@ struct disk_accounting_pos { struct bch_dev_data_type dev_data_type; struct bch_dev_stripe_buckets dev_stripe_buckets; struct bch_acct_compression compression; struct bch_acct_snapshot snapshot; }; }; struct bpos _pad; Loading Loading
fs/bcachefs/buckets.c +10 −0 Original line number Diff line number Diff line Loading @@ -778,6 +778,16 @@ static int __trigger_extent(struct btree_trans *trans, return ret; } if (acc_replicas_key.replicas.nr_devs && !level && k.k->p.snapshot) { struct disk_accounting_pos acc_snapshot_key = { .type = BCH_DISK_ACCOUNTING_snapshot, .snapshot.id = k.k->p.snapshot, }; ret = bch2_disk_accounting_mod(trans, &acc_snapshot_key, &replicas_sectors, 1, gc); if (ret) return ret; } if (acct_compression_key.compression.type) { if (flags & BTREE_TRIGGER_overwrite) bch2_u64s_neg(compression_acct, ARRAY_SIZE(compression_acct)); Loading
fs/bcachefs/disk_accounting.c +3 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,9 @@ void bch2_accounting_key_to_text(struct printbuf *out, struct disk_accounting_po case BCH_DISK_ACCOUNTING_compression: bch2_prt_compression_type(out, k->compression.type); break; case BCH_DISK_ACCOUNTING_snapshot: prt_printf(out, "id=%u", k->snapshot.id); break; } } Loading
fs/bcachefs/disk_accounting_format.h +7 −1 Original line number Diff line number Diff line Loading @@ -100,7 +100,8 @@ static inline bool data_type_is_hidden(enum bch_data_type type) x(persistent_reserved, 1) \ x(replicas, 2) \ x(dev_data_type, 3) \ x(compression, 4) x(compression, 4) \ x(snapshot, 5) enum disk_accounting_type { #define x(f, nr) BCH_DISK_ACCOUNTING_##f = nr, Loading Loading @@ -129,6 +130,10 @@ struct bch_acct_compression { __u8 type; }; struct bch_acct_snapshot { __u32 id; }; struct disk_accounting_pos { union { struct { Loading @@ -140,6 +145,7 @@ struct disk_accounting_pos { struct bch_dev_data_type dev_data_type; struct bch_dev_stripe_buckets dev_stripe_buckets; struct bch_acct_compression compression; struct bch_acct_snapshot snapshot; }; }; struct bpos _pad; Loading