Commit 4de77495 authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet

bcachefs: Reorganize extents.c

Signed-off-by: default avatarKent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 4be1a412
...@@ -200,7 +200,7 @@ bch2_extent_can_insert(struct btree_trans *trans, ...@@ -200,7 +200,7 @@ bch2_extent_can_insert(struct btree_trans *trans,
*u64s += _k->u64s; *u64s += _k->u64s;
if (overlap == BCH_EXTENT_OVERLAP_MIDDLE && if (overlap == BCH_EXTENT_OVERLAP_MIDDLE &&
(sectors = bch2_extent_is_compressed(k))) { (sectors = bch2_bkey_sectors_compressed(k))) {
int flags = trans->flags & BTREE_INSERT_NOFAIL int flags = trans->flags & BTREE_INSERT_NOFAIL
? BCH_DISK_RESERVATION_NOFAIL : 0; ? BCH_DISK_RESERVATION_NOFAIL : 0;
......
This diff is collapsed.
This diff is collapsed.
...@@ -675,7 +675,7 @@ static void bch2_add_page_sectors(struct bio *bio, struct bkey_s_c k) ...@@ -675,7 +675,7 @@ static void bch2_add_page_sectors(struct bio *bio, struct bkey_s_c k)
struct bvec_iter iter; struct bvec_iter iter;
struct bio_vec bv; struct bio_vec bv;
unsigned nr_ptrs = k.k->type == KEY_TYPE_reflink_v unsigned nr_ptrs = k.k->type == KEY_TYPE_reflink_v
? 0 : bch2_bkey_nr_ptrs_allocated(k); ? 0 : bch2_bkey_nr_ptrs_fully_allocated(k);
unsigned state = k.k->type == KEY_TYPE_reservation unsigned state = k.k->type == KEY_TYPE_reservation
? SECTOR_RESERVED ? SECTOR_RESERVED
: SECTOR_ALLOCATED; : SECTOR_ALLOCATED;
...@@ -2543,7 +2543,7 @@ static long bchfs_fcollapse_finsert(struct bch_inode_info *inode, ...@@ -2543,7 +2543,7 @@ static long bchfs_fcollapse_finsert(struct bch_inode_info *inode,
} else { } else {
/* We might end up splitting compressed extents: */ /* We might end up splitting compressed extents: */
unsigned nr_ptrs = unsigned nr_ptrs =
bch2_bkey_nr_dirty_ptrs(bkey_i_to_s_c(copy.k)); bch2_bkey_nr_ptrs_allocated(bkey_i_to_s_c(copy.k));
ret = bch2_disk_reservation_get(c, &disk_res, ret = bch2_disk_reservation_get(c, &disk_res,
copy.k->k.size, nr_ptrs, copy.k->k.size, nr_ptrs,
...@@ -2669,7 +2669,7 @@ static long bchfs_fallocate(struct bch_inode_info *inode, int mode, ...@@ -2669,7 +2669,7 @@ static long bchfs_fallocate(struct bch_inode_info *inode, int mode,
bch2_cut_back(end_pos, &reservation.k_i); bch2_cut_back(end_pos, &reservation.k_i);
sectors = reservation.k.size; sectors = reservation.k.size;
reservation.v.nr_replicas = bch2_bkey_nr_dirty_ptrs(k); reservation.v.nr_replicas = bch2_bkey_nr_ptrs_allocated(k);
if (!bkey_extent_is_allocation(k.k)) { if (!bkey_extent_is_allocation(k.k)) {
ret = bch2_quota_reservation_add(c, inode, ret = bch2_quota_reservation_add(c, inode,
...@@ -2680,7 +2680,7 @@ static long bchfs_fallocate(struct bch_inode_info *inode, int mode, ...@@ -2680,7 +2680,7 @@ static long bchfs_fallocate(struct bch_inode_info *inode, int mode,
} }
if (reservation.v.nr_replicas < replicas || if (reservation.v.nr_replicas < replicas ||
bch2_extent_is_compressed(k)) { bch2_bkey_sectors_compressed(k)) {
ret = bch2_disk_reservation_get(c, &disk_res, sectors, ret = bch2_disk_reservation_get(c, &disk_res, sectors,
replicas, 0); replicas, 0);
if (unlikely(ret)) if (unlikely(ret))
......
...@@ -202,8 +202,8 @@ static int sum_sector_overwrites(struct btree_trans *trans, ...@@ -202,8 +202,8 @@ static int sum_sector_overwrites(struct btree_trans *trans,
for_each_btree_key_continue(iter, BTREE_ITER_SLOTS, old, ret) { for_each_btree_key_continue(iter, BTREE_ITER_SLOTS, old, ret) {
if (!may_allocate && if (!may_allocate &&
bch2_bkey_nr_ptrs_allocated(old) < bch2_bkey_nr_ptrs_fully_allocated(old) <
bch2_bkey_nr_dirty_ptrs(bkey_i_to_s_c(new))) { bch2_bkey_nr_ptrs_allocated(bkey_i_to_s_c(new))) {
ret = -ENOSPC; ret = -ENOSPC;
break; break;
} }
......
...@@ -134,11 +134,11 @@ static int bch2_migrate_index_update(struct bch_write_op *op) ...@@ -134,11 +134,11 @@ static int bch2_migrate_index_update(struct bch_write_op *op)
* If we're not fully overwriting @k, and it's compressed, we * If we're not fully overwriting @k, and it's compressed, we
* need a reservation for all the pointers in @insert * need a reservation for all the pointers in @insert
*/ */
nr = bch2_bkey_nr_dirty_ptrs(bkey_i_to_s_c(insert)) - nr = bch2_bkey_nr_ptrs_allocated(bkey_i_to_s_c(insert)) -
m->nr_ptrs_reserved; m->nr_ptrs_reserved;
if (insert->k.size < k.k->size && if (insert->k.size < k.k->size &&
bch2_extent_is_compressed(k) && bch2_bkey_sectors_compressed(k) &&
nr > 0) { nr > 0) {
ret = bch2_disk_reservation_add(c, &op->res, ret = bch2_disk_reservation_add(c, &op->res,
keylist_sectors(keys) * nr, 0); keylist_sectors(keys) * nr, 0);
...@@ -250,7 +250,7 @@ int bch2_migrate_write_init(struct bch_fs *c, struct migrate_write *m, ...@@ -250,7 +250,7 @@ int bch2_migrate_write_init(struct bch_fs *c, struct migrate_write *m,
*/ */
#if 0 #if 0
int nr = (int) io_opts.data_replicas - int nr = (int) io_opts.data_replicas -
bch2_bkey_nr_dirty_ptrs(k); bch2_bkey_nr_ptrs_allocated(k);
#endif #endif
int nr = (int) io_opts.data_replicas; int nr = (int) io_opts.data_replicas;
...@@ -599,7 +599,7 @@ static int __bch2_move_data(struct bch_fs *c, ...@@ -599,7 +599,7 @@ static int __bch2_move_data(struct bch_fs *c,
if (rate) if (rate)
bch2_ratelimit_increment(rate, k.k->size); bch2_ratelimit_increment(rate, k.k->size);
next: next:
atomic64_add(k.k->size * bch2_bkey_nr_dirty_ptrs(k), atomic64_add(k.k->size * bch2_bkey_nr_ptrs_allocated(k),
&stats->sectors_seen); &stats->sectors_seen);
next_nondata: next_nondata:
bch2_btree_iter_next(iter); bch2_btree_iter_next(iter);
......
...@@ -254,7 +254,7 @@ static int bch2_extent_replay_key(struct bch_fs *c, enum btree_id btree_id, ...@@ -254,7 +254,7 @@ static int bch2_extent_replay_key(struct bch_fs *c, enum btree_id btree_id,
* Some extents aren't equivalent - w.r.t. what the triggers do * Some extents aren't equivalent - w.r.t. what the triggers do
* - if they're split: * - if they're split:
*/ */
bool remark_if_split = bch2_extent_is_compressed(bkey_i_to_s_c(k)) || bool remark_if_split = bch2_bkey_sectors_compressed(bkey_i_to_s_c(k)) ||
k->k.type == KEY_TYPE_reflink_p; k->k.type == KEY_TYPE_reflink_p;
bool remark = false; bool remark = false;
int ret; int ret;
...@@ -289,7 +289,7 @@ static int bch2_extent_replay_key(struct bch_fs *c, enum btree_id btree_id, ...@@ -289,7 +289,7 @@ static int bch2_extent_replay_key(struct bch_fs *c, enum btree_id btree_id,
bkey_cmp(atomic_end, k->k.p) < 0) { bkey_cmp(atomic_end, k->k.p) < 0) {
ret = bch2_disk_reservation_add(c, &disk_res, ret = bch2_disk_reservation_add(c, &disk_res,
k->k.size * k->k.size *
bch2_bkey_nr_dirty_ptrs(bkey_i_to_s_c(k)), bch2_bkey_nr_ptrs_allocated(bkey_i_to_s_c(k)),
BCH_DISK_RESERVATION_NOFAIL); BCH_DISK_RESERVATION_NOFAIL);
BUG_ON(ret); BUG_ON(ret);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment