mirror of
https://github.com/versity/scoutfs.git
synced 2026-05-01 18:35:43 +00:00
Yet another major shrinker API evolution in v6.6-rc4-53-gc42d50aefd17. The struct shrinker now has to be dynamically allocated. This is purposely a backwards incompatible break. Collapse the previous KC_ALLOC_SHRINKER, KC_INIT_SHRINKER_FUNCS, and KC_REGISTER_SHRINKER macros into a single KC_SETUP_SHRINKER macro. The three operations have to happen in different orders on different kernel APIs (the name is needed at alloc time on el10 and at register time on KC_SHRINKER_NAME kernels), so coupling them keeps the ordering correct per kernel. Add KC_SHRINKER_IS_NULL so callers can detect shrinker_alloc() failure on el10 and return -ENOMEM. The macro compiles to a constant 0 on older kernels where the shrinker is an embedded struct that cannot fail allocation. Signed-off-by: Auke Kok <auke.kok@versity.com>