Commit 7296a6d6 authored by Darrick J. Wong's avatar Darrick J. Wong
Browse files

xfs: drop the _safe behavior from the xbitmap foreach macro



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: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
parent 178b48d5
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -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;