Skip to content

Commit 6942661

Browse files
author
Kent Overstreet
committed
bcachefs: improve move_gap()
Signed-off-by: Kent Overstreet <[email protected]>
1 parent 95ffc7f commit 6942661

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

fs/bcachefs/btree_journal_iter.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,7 @@ int bch2_journal_key_insert_take(struct bch_fs *c, enum btree_id id,
218218

219219
journal_iters_move_gap(c, keys->gap, idx);
220220

221-
move_gap(keys->data, keys->nr, keys->size, keys->gap, idx);
222-
keys->gap = idx;
221+
move_gap(keys, idx);
223222

224223
keys->nr++;
225224
keys->data[keys->gap++] = n;
@@ -473,8 +472,7 @@ void bch2_journal_keys_put(struct bch_fs *c)
473472
if (!atomic_dec_and_test(&keys->ref))
474473
return;
475474

476-
move_gap(keys->data, keys->nr, keys->size, keys->gap, keys->nr);
477-
keys->gap = keys->nr;
475+
move_gap(keys, keys->nr);
478476

479477
darray_for_each(*keys, i)
480478
if (i->allocated)

fs/bcachefs/recovery.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -531,8 +531,7 @@ static int bch2_set_may_go_rw(struct bch_fs *c)
531531
* setting journal_key->overwritten: it will be accessed by multiple
532532
* threads
533533
*/
534-
move_gap(keys->data, keys->nr, keys->size, keys->gap, keys->nr);
535-
keys->gap = keys->nr;
534+
move_gap(keys, keys->nr);
536535

537536
set_bit(BCH_FS_may_go_rw, &c->flags);
538537

fs/bcachefs/util.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -756,8 +756,12 @@ static inline void __move_gap(void *array, size_t element_size,
756756
}
757757

758758
/* Move the gap in a gap buffer: */
759-
#define move_gap(_array, _nr, _size, _old_gap, _new_gap) \
760-
__move_gap(_array, sizeof(_array[0]), _nr, _size, _old_gap, _new_gap)
759+
#define move_gap(_d, _new_gap) \
760+
do { \
761+
__move_gap((_d)->data, sizeof((_d)->data[0]), \
762+
(_d)->nr, (_d)->size, (_d)->gap, _new_gap); \
763+
(_d)->gap = _new_gap; \
764+
} while (0)
761765

762766
#define bubble_sort(_base, _nr, _cmp) \
763767
do { \

0 commit comments

Comments
 (0)