summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-02-07 17:12:47 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2025-03-14 21:02:13 -0400
commitb7f648e2ec3c3a06fc1397b2f3e88480da56b7ad (patch)
treede9dc1f5a72f29144ea6d8296d299a879ca1f7ee
parent7606fb4d26e0684d40e40ea070a30af901e5bbbd (diff)
bcachefs: Add comment explaining why asserts in invalidate_one_bucket() are impossible
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/alloc_background.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/bcachefs/alloc_background.c b/fs/bcachefs/alloc_background.c
index 43c29b0d2d20..a35455802280 100644
--- a/fs/bcachefs/alloc_background.c
+++ b/fs/bcachefs/alloc_background.c
@@ -2093,6 +2093,13 @@ static int invalidate_one_bucket(struct btree_trans *trans,
if (lru_pos_time(lru_iter->pos) != alloc_lru_idx_read(a->v))
goto out;
+ /*
+ * Impossible since alloc_lru_idx_read() only returns nonzero if the
+ * bucket is supposed to be on the cached bucket LRU (i.e.
+ * BCH_DATA_cached)
+ *
+ * bch2_lru_validate() also disallows lru keys with lru_pos_time() == 0
+ */
BUG_ON(a->v.data_type != BCH_DATA_cached);
BUG_ON(a->v.dirty_sectors);