.key_invalid is a better place for this assertion.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
                        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;
 
                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)