}
#define POS_MIN SPOS(0, 0, 0)
-#define POS_MAX SPOS(KEY_INODE_MAX, KEY_OFFSET_MAX, KEY_SNAPSHOT_MAX)
+#define POS_MAX SPOS(KEY_INODE_MAX, KEY_OFFSET_MAX, 0)
+#define SPOS_MAX SPOS(KEY_INODE_MAX, KEY_OFFSET_MAX, KEY_SNAPSHOT_MAX)
#define POS(_inode, _offset) SPOS(_inode, _offset, 0)
/* Empty placeholder struct, for container_of() */
goto fsck_err;
}
- if (mustfix_fsck_err_on(bpos_cmp(b->data->max_key, POS_MAX), c,
+ if (mustfix_fsck_err_on(bpos_cmp(b->data->max_key, SPOS_MAX), c,
"btree root with incorrect max_key: %s",
(bch2_bpos_to_text(&PBUF(buf), b->data->max_key), buf))) {
bch_err(c, "repair unimplemented");
*/
static inline struct gc_pos gc_pos_btree_root(enum btree_id id)
{
- return gc_pos_btree(id, POS_MAX, BTREE_MAX_DEPTH);
+ return gc_pos_btree(id, SPOS_MAX, BTREE_MAX_DEPTH);
}
static inline bool gc_visited(struct bch_fs *c, struct gc_pos pos)
}
lock_type = __btree_lock_want(iter, iter->level);
- if (unlikely(!btree_node_lock(b, POS_MAX, iter->level,
+ if (unlikely(!btree_node_lock(b, SPOS_MAX, iter->level,
iter, lock_type,
lock_root_check_fn, rootp,
trace_ip)))
inline bool bch2_btree_iter_advance(struct btree_iter *iter)
{
struct bpos pos = iter->k.p;
- bool ret = bpos_cmp(pos, POS_MAX) != 0;
+ bool ret = bpos_cmp(pos, SPOS_MAX) != 0;
if (ret && !(iter->flags & BTREE_ITER_IS_EXTENTS))
pos = bkey_successor(iter, pos);
static inline bool btree_iter_set_pos_to_next_leaf(struct btree_iter *iter)
{
struct bpos next_pos = iter->l[0].b->key.k.p;
- bool ret = bpos_cmp(next_pos, POS_MAX) != 0;
+ bool ret = bpos_cmp(next_pos, SPOS_MAX) != 0;
/*
* Typically, we don't want to modify iter->pos here, since that
if (ret)
btree_iter_set_search_pos(iter, bpos_successor(next_pos));
else
- bch2_btree_iter_set_pos(iter, POS_MAX);
+ bch2_btree_iter_set_pos(iter, SPOS_MAX);
return ret;
}
struct btree *b = bch2_btree_node_alloc(as, level);
btree_set_min(b, POS_MIN);
- btree_set_max(b, POS_MAX);
+ btree_set_max(b, SPOS_MAX);
b->data->format = bch2_btree_calc_format(b);
btree_node_set_format(b, b->data->format);
b = iter->l[level].b;
if ((sib == btree_prev_sib && !bpos_cmp(b->data->min_key, POS_MIN)) ||
- (sib == btree_next_sib && !bpos_cmp(b->data->max_key, POS_MAX))) {
+ (sib == btree_next_sib && !bpos_cmp(b->data->max_key, SPOS_MAX))) {
b->sib_u64s[sib] = U16_MAX;
goto out;
}
b->c.btree_id = id;
bkey_btree_ptr_init(&b->key);
- b->key.k.p = POS_MAX;
+ b->key.k.p = SPOS_MAX;
*((u64 *) bkey_i_to_btree_ptr(&b->key)->v.start) = U64_MAX - id;
bch2_bset_init_first(b, &b->data->keys);
b->data->flags = 0;
btree_set_min(b, POS_MIN);
- btree_set_max(b, POS_MAX);
+ btree_set_max(b, SPOS_MAX);
b->data->format = bch2_btree_calc_format(b);
btree_node_set_format(b, b->data->format);
if (err)
return err;
- if (!i->size || !bpos_cmp(POS_MAX, i->from))
+ if (!i->size || !bpos_cmp(SPOS_MAX, i->from))
return i->ret;
bch2_trans_init(&trans, i->c, 0, 0);
* can't easily correctly restart a btree node traversal across
* all nodes, meh
*/
- i->from = bpos_cmp(POS_MAX, b->key.k.p)
+ i->from = bpos_cmp(SPOS_MAX, b->key.k.p)
? bpos_successor(b->key.k.p)
: b->key.k.p;
break;
if ((cmp_int(id, end_btree_id) ?:
- bkey_cmp(b->key.k.p, end_pos)) > 0)
+ bpos_cmp(b->key.k.p, end_pos)) > 0)
break;
stats->pos = iter->pos;
ret = bch2_move_btree(c,
0, POS_MIN,
- BTREE_ID_NR, POS_MAX,
+ BTREE_ID_NR, SPOS_MAX,
rewrite_old_nodes_pred, c, stats);
if (!ret) {
mutex_lock(&c->sb_lock);