From 62491956f48e1afda98f50250d4690131e87d6ea Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Thu, 7 Apr 2022 17:32:57 -0400 Subject: [PATCH] bcachefs: Move alloc assertion to .key_invalid() .key_invalid is a better place for this assertion. Signed-off-by: Kent Overstreet --- fs/bcachefs/alloc_background.c | 8 ++++++++ fs/bcachefs/alloc_background.h | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) 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) -- 2.39.5