From: Kent Overstreet Date: Thu, 7 Apr 2022 21:32:57 +0000 (-0400) Subject: bcachefs: Move alloc assertion to .key_invalid() X-Git-Tag: v6.7-rc1~201^2~1002 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=62491956f48e1afda98f50250d4690131e87d6ea;p=thirdparty%2Fkernel%2Flinux.git bcachefs: Move alloc assertion to .key_invalid() .key_invalid is a better place for this assertion. Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/alloc_background.c b/fs/bcachefs/alloc_background.c index f030030a8b503..090fdee581573 100644 --- a/fs/bcachefs/alloc_background.c +++ b/fs/bcachefs/alloc_background.c @@ -361,6 +361,14 @@ int bch2_alloc_v4_invalid(const struct bch_fs *c, struct bkey_s_c k, pr_buf(err, "cached bucket with read_time == 0"); return -EINVAL; } + + if (!a.v->dirty_sectors && + !a.v->cached_sectors && + !a.v->stripe && + a.v->data_type) { + pr_buf(err, "empty, but data_type nonzero"); + return -EINVAL; + } } return 0; diff --git a/fs/bcachefs/alloc_background.h b/fs/bcachefs/alloc_background.h index 9c6a590fa0737..11e0bca3e7f29 100644 --- a/fs/bcachefs/alloc_background.h +++ b/fs/bcachefs/alloc_background.h @@ -44,7 +44,6 @@ static inline enum bucket_state bucket_state(struct bch_alloc_v4 a) return BUCKET_dirty; if (a.cached_sectors) return BUCKET_cached; - BUG_ON(a.data_type); if (BCH_ALLOC_V4_NEED_DISCARD(&a)) return BUCKET_need_discard; if (alloc_gc_gen(a) >= BUCKET_GC_GEN_MAX)