summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/util.c
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2025-01-27 17:26:05 +0100
committerKent Overstreet <kent.overstreet@linux.dev>2025-03-14 21:02:13 -0400
commitdc5ceaaad81a724e7090d8709290fae36e3f2a5d (patch)
treee1354d5e152584e10a8b751adba4789ab7b8da6c /fs/bcachefs/util.c
parentbcachefs: eytzinger0_find_test improvement (diff)
downloadlinux-dc5ceaaad81a724e7090d8709290fae36e3f2a5d.tar.gz
linux-dc5ceaaad81a724e7090d8709290fae36e3f2a5d.zip
bcachefs: add eytzinger0_for_each_prev
Add an eytzinger0_for_each_prev() macro for iterating through an eytzinger array in reverse. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/util.c')
-rw-r--r--fs/bcachefs/util.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/bcachefs/util.c b/fs/bcachefs/util.c
index 4114e5264965..ebe3b5b1e615 100644
--- a/fs/bcachefs/util.c
+++ b/fs/bcachefs/util.c
@@ -769,6 +769,15 @@ void eytzinger0_test(void)
inorder++;
}
BUG_ON(inorder != size);
+
+ inorder = size - 1;
+ eytzinger0_for_each_prev(eytz, size) {
+ BUG_ON(eytz != eytzinger0_first(size) &&
+ eytzinger0_next(eytzinger0_prev(eytz, size), size) != eytz);
+
+ inorder--;
+ }
+ BUG_ON(inorder != -1);
}
}