bcachefs: Rhashtable based buckets_in_flight for copygc
authorKent Overstreet <kent.overstreet@linux.dev>
Sat, 11 Mar 2023 19:44:41 +0000 (14:44 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:58 +0000 (17:09 -0400)
commit32de2ea0d5b7e2bc2a4eeac47e38aceb0ff25cc9
treeb752d752a59ad1b8d32027ad6ffa6e9c42f7a4d1
parent6bdefe9c3900b3bb7a028486423520cdc975d9a8
bcachefs: Rhashtable based buckets_in_flight for copygc

Previously, copygc used a fifo for tracking buckets in flight - this had
the disadvantage of being fixed size, since we pass references to
elements into the move code.

This restructures it to be a hash table and linked list, since with
erasure coding we need to be able to pipeline across an arbitrary number
of buckets.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/move_types.h
fs/bcachefs/movinggc.c