bcachefs: bch2_trigger_alloc() handles state changes better
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 16 Feb 2024 02:42:10 +0000 (21:42 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Thu, 14 Mar 2024 01:22:24 +0000 (21:22 -0400)
commit6e9d0558b1ad285eb371e309b36cdcf2d8f8d138
treef7e88d313dfabdd97a9f6b0d748564bc220ccbd5
parentb63570f74733851579f489f092b6c28077f57c4a
bcachefs: bch2_trigger_alloc() handles state changes better

bch2_trigger_alloc() kicks off certain tasks on bucket state changes;
e.g. triggering the bucket discard worker and the invalidate worker.

We've observed the discard worker running too often - most runs it
doesn't do any work, according to the tracepoint - so clearly, we're
kicking it off too often.

This adds an explicit statechange() macro to make these checks more
precise.

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