bcachefs: fix odebug warn and lockdep splat due to on-stack rhashtable
authorBrian Foster <bfoster@redhat.com>
Wed, 1 Nov 2023 13:01:02 +0000 (09:01 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 5 Nov 2023 02:19:13 +0000 (22:19 -0400)
commit0e91d3a6d59ed3c6630c7c50f17534f2b02d2abf
tree1c72119c0ba57ac3beda334b2d453051e543e44f
parente0fb0dccfd6fd8dd9c07adc6eafb1a12e2121a36
bcachefs: fix odebug warn and lockdep splat due to on-stack rhashtable

Guenter Roeck reports a lockdep splat and DEBUG_OBJECTS_WORK related
warning when bch2_copygc_thread() initializes its rhashtable. The
lockdep splat relates to a warning print caused by the fact that the
rhashtable exists on the stack but is not annotated as so. This is
something that could be addressed by INIT_WORK_ONSTACK(), but
rhashtable doesn't expose that control and probably isnt worth the
churn for just one user. Instead, dynamically allocate the
buckets_in_flight structure and avoid the splat that way.

Reported-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/movinggc.c