Lines Matching refs:idx

34 static inline size_t idx_to_pos(struct journal_keys *keys, size_t idx)
38 if (idx >= keys->gap)
39 idx += gap_size;
40 return idx;
43 static inline struct journal_key *idx_to_key(struct journal_keys *keys, size_t idx)
45 return keys->data + idx_to_pos(keys, idx);
81 struct bpos end_pos, size_t *idx)
87 BUG_ON(*idx > keys->nr);
89 if (!*idx)
90 *idx = __bch2_journal_key_search(keys, btree_id, level, pos);
92 while (*idx &&
93 __journal_key_cmp(btree_id, level, end_pos, idx_to_key(keys, *idx - 1)) <= 0) {
94 --(*idx);
97 *idx = 0;
102 while ((k = *idx < keys->nr ? idx_to_key(keys, *idx) : NULL)) {
107 (*idx)++;
114 (*idx)++;
117 *idx = 0;
128 size_t idx = 0;
130 return bch2_journal_keys_peek_upto(c, btree_id, level, pos, pos, &idx);
138 BUG_ON(iter->idx >= keys->gap &&
139 iter->idx < keys->gap + gap_size);
141 if (iter->idx < keys->size) {
142 struct journal_key *k = keys->data + iter->idx;
166 if (iter->idx == gap_end &&
169 iter->idx = keys->gap - 1;
181 if (iter->idx > old_gap)
182 iter->idx -= gap_size;
183 if (iter->idx >= new_gap)
184 iter->idx += gap_size;
203 size_t idx = bch2_journal_key_search(keys, id, level, k->k.p);
207 if (idx < keys->size &&
208 journal_key_cmp(&n, &keys->data[idx]) == 0) {
209 if (keys->data[idx].allocated)
210 kfree(keys->data[idx].k);
211 keys->data[idx] = n;
215 if (idx > keys->gap)
216 idx -= keys->size - keys->nr;
247 journal_iters_move_gap(c, old_gap, idx);
249 move_gap(keys, idx);
296 size_t idx = bch2_journal_key_search(keys, btree, level, pos);
301 return (idx < keys->size &&
302 keys->data[idx].btree_id == btree &&
303 keys->data[idx].level == level &&
304 bpos_eq(keys->data[idx].k->k.p, pos) &&
305 bkey_deleted(&keys->data[idx].k->k));
312 size_t idx = bch2_journal_key_search(keys, btree, level, pos);
314 if (idx < keys->size &&
315 keys->data[idx].btree_id == btree &&
316 keys->data[idx].level == level &&
317 bpos_eq(keys->data[idx].k->k.p, pos))
318 keys->data[idx].overwritten = true;
323 if (iter->idx < iter->keys->size) {
324 iter->idx++;
325 if (iter->idx == iter->keys->gap)
326 iter->idx += iter->keys->size - iter->keys->nr;
334 while (iter->idx < iter->keys->size) {
335 struct journal_key *k = iter->keys->data + iter->idx;
365 iter->idx = bch2_journal_key_search(&c->journal_keys, id, level, pos);