xfs: drop the _safe behavior from the xbitmap foreach macro
authorDarrick J. Wong <djwong@kernel.org>
Wed, 12 Apr 2023 02:00:36 +0000 (19:00 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 12 Apr 2023 02:00:36 +0000 (19:00 -0700)
It's not safe to edit bitmap intervals while we're iterating them with
for_each_xbitmap_extent.  None of the existing callers actually need
that ability anyway, so drop the safe variable.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/scrub/bitmap.c

index 315b7c5..9927634 100644 (file)
@@ -13,8 +13,9 @@
 #include "scrub/scrub.h"
 #include "scrub/bitmap.h"
 
-#define for_each_xbitmap_extent(bex, n, bitmap) \
-       list_for_each_entry_safe((bex), (n), &(bitmap)->list, list)
+/* Iterate each interval of a bitmap.  Do not change the bitmap. */
+#define for_each_xbitmap_extent(bex, bitmap) \
+       list_for_each_entry((bex), &(bitmap)->list, list)
 
 /*
  * Set a range of this bitmap.  Caller must ensure the range is not set.
@@ -46,10 +47,9 @@ void
 xbitmap_destroy(
        struct xbitmap          *bitmap)
 {
-       struct xbitmap_range    *bmr;
-       struct xbitmap_range    *n;
+       struct xbitmap_range    *bmr, *n;
 
-       for_each_xbitmap_extent(bmr, n, bitmap) {
+       list_for_each_entry_safe(bmr, n, &bitmap->list, list) {
                list_del(&bmr->list);
                kfree(bmr);
        }
@@ -308,10 +308,9 @@ xbitmap_hweight(
        struct xbitmap          *bitmap)
 {
        struct xbitmap_range    *bmr;
-       struct xbitmap_range    *n;
        uint64_t                ret = 0;
 
-       for_each_xbitmap_extent(bmr, n, bitmap)
+       for_each_xbitmap_extent(bmr, bitmap)
                ret += bmr->len;
 
        return ret;
@@ -324,10 +323,10 @@ xbitmap_walk(
        xbitmap_walk_fn fn,
        void                    *priv)
 {
-       struct xbitmap_range    *bex, *n;
+       struct xbitmap_range    *bex;
        int                     error = 0;
 
-       for_each_xbitmap_extent(bex, n, bitmap) {
+       for_each_xbitmap_extent(bex, bitmap) {
                error = fn(bex->start, bex->len, priv);
                if (error)
                        break;