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: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Dave Chinner <dchinner@redhat.com>
This commit is contained in:
parent
178b48d588
commit
7296a6d6fb
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue