Loading fs/bcachefs/alloc_background.c +9 −7 Original line number Diff line number Diff line Loading @@ -583,7 +583,8 @@ static void find_reclaimable_buckets_lru(struct bch_fs *c, struct bch_dev *ca) e.nr++; } else { if (e.nr) heap_add_or_replace(&ca->alloc_heap, e, -bucket_alloc_cmp); heap_add_or_replace(&ca->alloc_heap, e, -bucket_alloc_cmp, NULL); e = (struct alloc_heap_entry) { .bucket = b, Loading @@ -596,14 +597,15 @@ static void find_reclaimable_buckets_lru(struct bch_fs *c, struct bch_dev *ca) } if (e.nr) heap_add_or_replace(&ca->alloc_heap, e, -bucket_alloc_cmp); heap_add_or_replace(&ca->alloc_heap, e, -bucket_alloc_cmp, NULL); for (i = 0; i < ca->alloc_heap.used; i++) nr += ca->alloc_heap.data[i].nr; while (nr - ca->alloc_heap.data[0].nr >= ALLOC_SCAN_BATCH(ca)) { nr -= ca->alloc_heap.data[0].nr; heap_pop(&ca->alloc_heap, e, -bucket_alloc_cmp); heap_pop(&ca->alloc_heap, e, -bucket_alloc_cmp, NULL); } up_read(&ca->bucket_lock); Loading Loading @@ -633,7 +635,7 @@ static void find_reclaimable_buckets_fifo(struct bch_fs *c, struct bch_dev *ca) if (bch2_can_invalidate_bucket(ca, b, m)) { struct alloc_heap_entry e = { .bucket = b, .nr = 1, }; heap_add(&ca->alloc_heap, e, bucket_alloc_cmp); heap_add(&ca->alloc_heap, e, bucket_alloc_cmp, NULL); if (heap_full(&ca->alloc_heap)) break; } Loading @@ -660,7 +662,7 @@ static void find_reclaimable_buckets_random(struct bch_fs *c, struct bch_dev *ca if (bch2_can_invalidate_bucket(ca, b, m)) { struct alloc_heap_entry e = { .bucket = b, .nr = 1, }; heap_add(&ca->alloc_heap, e, bucket_alloc_cmp); heap_add(&ca->alloc_heap, e, bucket_alloc_cmp, NULL); if (heap_full(&ca->alloc_heap)) break; } Loading Loading @@ -698,7 +700,7 @@ static size_t find_reclaimable_buckets(struct bch_fs *c, struct bch_dev *ca) break; } heap_resort(&ca->alloc_heap, bucket_alloc_cmp); heap_resort(&ca->alloc_heap, bucket_alloc_cmp, NULL); for (i = 0; i < ca->alloc_heap.used; i++) nr += ca->alloc_heap.data[i].nr; Loading @@ -719,7 +721,7 @@ static inline long next_alloc_bucket(struct bch_dev *ca) return b; } heap_pop(&ca->alloc_heap, e, bucket_alloc_cmp); heap_pop(&ca->alloc_heap, e, bucket_alloc_cmp, NULL); } return -1; Loading fs/bcachefs/btree_io.c +3 −3 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ void bch2_btree_node_iter_large_push(struct btree_node_iter_large *iter, __btree_node_key_to_offset(b, end) }); __heap_add(iter, n, btree_node_iter_cmp_heap); __heap_add(iter, n, btree_node_iter_cmp_heap, NULL); } } Loading @@ -48,9 +48,9 @@ void bch2_btree_node_iter_large_advance(struct btree_node_iter_large *iter, EBUG_ON(iter->data->k > iter->data->end); if (iter->data->k == iter->data->end) heap_del(iter, 0, btree_node_iter_cmp_heap); heap_del(iter, 0, btree_node_iter_cmp_heap, NULL); else heap_sift_down(iter, 0, btree_node_iter_cmp_heap); heap_sift_down(iter, 0, btree_node_iter_cmp_heap, NULL); } static void verify_no_dups(struct btree *b, Loading fs/bcachefs/clock.c +3 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ void bch2_io_timer_add(struct io_clock *clock, struct io_timer *timer) if (clock->timers.data[i] == timer) goto out; BUG_ON(!heap_add(&clock->timers, timer, io_timer_cmp)); BUG_ON(!heap_add(&clock->timers, timer, io_timer_cmp, NULL)); out: spin_unlock(&clock->timer_lock); } Loading @@ -35,7 +35,7 @@ void bch2_io_timer_del(struct io_clock *clock, struct io_timer *timer) for (i = 0; i < clock->timers.used; i++) if (clock->timers.data[i] == timer) { heap_del(&clock->timers, i, io_timer_cmp); heap_del(&clock->timers, i, io_timer_cmp, NULL); break; } Loading Loading @@ -128,7 +128,7 @@ static struct io_timer *get_expired_timer(struct io_clock *clock, if (clock->timers.used && time_after_eq(now, clock->timers.data[0]->expire)) heap_pop(&clock->timers, ret, io_timer_cmp); heap_pop(&clock->timers, ret, io_timer_cmp, NULL); spin_unlock(&clock->timer_lock); Loading fs/bcachefs/extents.c +5 −5 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ struct btree_nr_keys bch2_key_sort_fix_overlapping(struct bset *dst, memset(&nr, 0, sizeof(nr)); heap_resort(iter, key_sort_cmp); heap_resort(iter, key_sort_cmp, NULL); while (!bch2_btree_node_iter_large_end(iter)) { if (!should_drop_next_key(iter, b)) { Loading @@ -101,7 +101,7 @@ struct btree_nr_keys bch2_key_sort_fix_overlapping(struct bset *dst, } sort_key_next(iter, b, iter->data); heap_sift_down(iter, 0, key_sort_cmp); heap_sift_down(iter, 0, key_sort_cmp, NULL); } dst->u64s = cpu_to_le16((u64 *) out - dst->_data); Loading Loading @@ -841,7 +841,7 @@ static bool extent_i_save(struct btree *b, struct bkey_packed *dst, static inline void extent_sort_sift(struct btree_node_iter_large *iter, struct btree *b, size_t i) { heap_sift_down(iter, i, extent_sort_cmp); heap_sift_down(iter, i, extent_sort_cmp, NULL); } static inline void extent_sort_next(struct btree_node_iter_large *iter, Loading @@ -849,7 +849,7 @@ static inline void extent_sort_next(struct btree_node_iter_large *iter, struct btree_node_iter_set *i) { sort_key_next(iter, b, i); heap_sift_down(iter, i - iter->data, extent_sort_cmp); heap_sift_down(iter, i - iter->data, extent_sort_cmp, NULL); } static void extent_sort_append(struct bch_fs *c, Loading Loading @@ -897,7 +897,7 @@ struct btree_nr_keys bch2_extent_sort_fix_overlapping(struct bch_fs *c, memset(&nr, 0, sizeof(nr)); heap_resort(iter, extent_sort_cmp); heap_resort(iter, extent_sort_cmp, NULL); while (!bch2_btree_node_iter_large_end(iter)) { lk = __btree_node_offset_to_key(b, _l->k); Loading fs/bcachefs/movinggc.c +2 −2 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ static void bch2_copygc(struct bch_fs *c, struct bch_dev *ca) .sectors = bucket_sectors_used(m), .offset = bucket_to_sector(ca, b), }; heap_add_or_replace(h, e, -sectors_used_cmp); heap_add_or_replace(h, e, -sectors_used_cmp, NULL); } up_read(&ca->bucket_lock); up_read(&c->gc_lock); Loading @@ -170,7 +170,7 @@ static void bch2_copygc(struct bch_fs *c, struct bch_dev *ca) sectors_to_move += i->sectors; while (sectors_to_move > COPYGC_SECTORS_PER_ITER(ca)) { BUG_ON(!heap_pop(h, e, -sectors_used_cmp)); BUG_ON(!heap_pop(h, e, -sectors_used_cmp, NULL)); sectors_to_move -= e.sectors; } Loading Loading
fs/bcachefs/alloc_background.c +9 −7 Original line number Diff line number Diff line Loading @@ -583,7 +583,8 @@ static void find_reclaimable_buckets_lru(struct bch_fs *c, struct bch_dev *ca) e.nr++; } else { if (e.nr) heap_add_or_replace(&ca->alloc_heap, e, -bucket_alloc_cmp); heap_add_or_replace(&ca->alloc_heap, e, -bucket_alloc_cmp, NULL); e = (struct alloc_heap_entry) { .bucket = b, Loading @@ -596,14 +597,15 @@ static void find_reclaimable_buckets_lru(struct bch_fs *c, struct bch_dev *ca) } if (e.nr) heap_add_or_replace(&ca->alloc_heap, e, -bucket_alloc_cmp); heap_add_or_replace(&ca->alloc_heap, e, -bucket_alloc_cmp, NULL); for (i = 0; i < ca->alloc_heap.used; i++) nr += ca->alloc_heap.data[i].nr; while (nr - ca->alloc_heap.data[0].nr >= ALLOC_SCAN_BATCH(ca)) { nr -= ca->alloc_heap.data[0].nr; heap_pop(&ca->alloc_heap, e, -bucket_alloc_cmp); heap_pop(&ca->alloc_heap, e, -bucket_alloc_cmp, NULL); } up_read(&ca->bucket_lock); Loading Loading @@ -633,7 +635,7 @@ static void find_reclaimable_buckets_fifo(struct bch_fs *c, struct bch_dev *ca) if (bch2_can_invalidate_bucket(ca, b, m)) { struct alloc_heap_entry e = { .bucket = b, .nr = 1, }; heap_add(&ca->alloc_heap, e, bucket_alloc_cmp); heap_add(&ca->alloc_heap, e, bucket_alloc_cmp, NULL); if (heap_full(&ca->alloc_heap)) break; } Loading @@ -660,7 +662,7 @@ static void find_reclaimable_buckets_random(struct bch_fs *c, struct bch_dev *ca if (bch2_can_invalidate_bucket(ca, b, m)) { struct alloc_heap_entry e = { .bucket = b, .nr = 1, }; heap_add(&ca->alloc_heap, e, bucket_alloc_cmp); heap_add(&ca->alloc_heap, e, bucket_alloc_cmp, NULL); if (heap_full(&ca->alloc_heap)) break; } Loading Loading @@ -698,7 +700,7 @@ static size_t find_reclaimable_buckets(struct bch_fs *c, struct bch_dev *ca) break; } heap_resort(&ca->alloc_heap, bucket_alloc_cmp); heap_resort(&ca->alloc_heap, bucket_alloc_cmp, NULL); for (i = 0; i < ca->alloc_heap.used; i++) nr += ca->alloc_heap.data[i].nr; Loading @@ -719,7 +721,7 @@ static inline long next_alloc_bucket(struct bch_dev *ca) return b; } heap_pop(&ca->alloc_heap, e, bucket_alloc_cmp); heap_pop(&ca->alloc_heap, e, bucket_alloc_cmp, NULL); } return -1; Loading
fs/bcachefs/btree_io.c +3 −3 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ void bch2_btree_node_iter_large_push(struct btree_node_iter_large *iter, __btree_node_key_to_offset(b, end) }); __heap_add(iter, n, btree_node_iter_cmp_heap); __heap_add(iter, n, btree_node_iter_cmp_heap, NULL); } } Loading @@ -48,9 +48,9 @@ void bch2_btree_node_iter_large_advance(struct btree_node_iter_large *iter, EBUG_ON(iter->data->k > iter->data->end); if (iter->data->k == iter->data->end) heap_del(iter, 0, btree_node_iter_cmp_heap); heap_del(iter, 0, btree_node_iter_cmp_heap, NULL); else heap_sift_down(iter, 0, btree_node_iter_cmp_heap); heap_sift_down(iter, 0, btree_node_iter_cmp_heap, NULL); } static void verify_no_dups(struct btree *b, Loading
fs/bcachefs/clock.c +3 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ void bch2_io_timer_add(struct io_clock *clock, struct io_timer *timer) if (clock->timers.data[i] == timer) goto out; BUG_ON(!heap_add(&clock->timers, timer, io_timer_cmp)); BUG_ON(!heap_add(&clock->timers, timer, io_timer_cmp, NULL)); out: spin_unlock(&clock->timer_lock); } Loading @@ -35,7 +35,7 @@ void bch2_io_timer_del(struct io_clock *clock, struct io_timer *timer) for (i = 0; i < clock->timers.used; i++) if (clock->timers.data[i] == timer) { heap_del(&clock->timers, i, io_timer_cmp); heap_del(&clock->timers, i, io_timer_cmp, NULL); break; } Loading Loading @@ -128,7 +128,7 @@ static struct io_timer *get_expired_timer(struct io_clock *clock, if (clock->timers.used && time_after_eq(now, clock->timers.data[0]->expire)) heap_pop(&clock->timers, ret, io_timer_cmp); heap_pop(&clock->timers, ret, io_timer_cmp, NULL); spin_unlock(&clock->timer_lock); Loading
fs/bcachefs/extents.c +5 −5 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ struct btree_nr_keys bch2_key_sort_fix_overlapping(struct bset *dst, memset(&nr, 0, sizeof(nr)); heap_resort(iter, key_sort_cmp); heap_resort(iter, key_sort_cmp, NULL); while (!bch2_btree_node_iter_large_end(iter)) { if (!should_drop_next_key(iter, b)) { Loading @@ -101,7 +101,7 @@ struct btree_nr_keys bch2_key_sort_fix_overlapping(struct bset *dst, } sort_key_next(iter, b, iter->data); heap_sift_down(iter, 0, key_sort_cmp); heap_sift_down(iter, 0, key_sort_cmp, NULL); } dst->u64s = cpu_to_le16((u64 *) out - dst->_data); Loading Loading @@ -841,7 +841,7 @@ static bool extent_i_save(struct btree *b, struct bkey_packed *dst, static inline void extent_sort_sift(struct btree_node_iter_large *iter, struct btree *b, size_t i) { heap_sift_down(iter, i, extent_sort_cmp); heap_sift_down(iter, i, extent_sort_cmp, NULL); } static inline void extent_sort_next(struct btree_node_iter_large *iter, Loading @@ -849,7 +849,7 @@ static inline void extent_sort_next(struct btree_node_iter_large *iter, struct btree_node_iter_set *i) { sort_key_next(iter, b, i); heap_sift_down(iter, i - iter->data, extent_sort_cmp); heap_sift_down(iter, i - iter->data, extent_sort_cmp, NULL); } static void extent_sort_append(struct bch_fs *c, Loading Loading @@ -897,7 +897,7 @@ struct btree_nr_keys bch2_extent_sort_fix_overlapping(struct bch_fs *c, memset(&nr, 0, sizeof(nr)); heap_resort(iter, extent_sort_cmp); heap_resort(iter, extent_sort_cmp, NULL); while (!bch2_btree_node_iter_large_end(iter)) { lk = __btree_node_offset_to_key(b, _l->k); Loading
fs/bcachefs/movinggc.c +2 −2 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ static void bch2_copygc(struct bch_fs *c, struct bch_dev *ca) .sectors = bucket_sectors_used(m), .offset = bucket_to_sector(ca, b), }; heap_add_or_replace(h, e, -sectors_used_cmp); heap_add_or_replace(h, e, -sectors_used_cmp, NULL); } up_read(&ca->bucket_lock); up_read(&c->gc_lock); Loading @@ -170,7 +170,7 @@ static void bch2_copygc(struct bch_fs *c, struct bch_dev *ca) sectors_to_move += i->sectors; while (sectors_to_move > COPYGC_SECTORS_PER_ITER(ca)) { BUG_ON(!heap_pop(h, e, -sectors_used_cmp)); BUG_ON(!heap_pop(h, e, -sectors_used_cmp, NULL)); sectors_to_move -= e.sectors; } Loading