rangeset: add rangeset_purge() function

This function can be used when user wants to remove all rangeset
entries but do not want to destroy rangeset itself.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Volodymyr Babchuk authored and Jan Beulich committed 2024-02-27 14:56:19 +01:00
1 parent fe62abfcb2
commit 99eeb2eb0b
2 files changed
+14 -5

No files matched your search

+12 -4
View File
@@ -448,11 +448,20 @@ struct rangeset *rangeset_new(
return r;
}
void rangeset_destroy(
struct rangeset *r)
void rangeset_purge(struct rangeset *r)
{
struct range *x;
if ( r == NULL )
return;
while ( (x = first_range(r)) != NULL )
destroy_range(r, x);
}
void rangeset_destroy(
struct rangeset *r)
{
if ( r == NULL )
return;
@@ -463,8 +472,7 @@ void rangeset_destroy(
spin_unlock(&r->domain->rangesets_lock);
}
while ( (x = first_range(r)) != NULL )
destroy_range(r, x);
rangeset_purge(r);
xfree(r);
}
+2 -1
View File
@@ -56,7 +56,7 @@ void rangeset_limit(
bool __must_check rangeset_is_empty(
const struct rangeset *r);
/* Add/claim/remove/query a numeric range. */
/* Add/claim/remove/query/purge a numeric range. */
int __must_check rangeset_add_range(
struct rangeset *r, unsigned long s, unsigned long e);
int __must_check rangeset_claim_range(struct rangeset *r, unsigned long size,
@@ -70,6 +70,7 @@ bool __must_check rangeset_overlaps_range(
int rangeset_report_ranges(
struct rangeset *r, unsigned long s, unsigned long e,
int (*cb)(unsigned long s, unsigned long e, void *data), void *ctxt);
void rangeset_purge(struct rangeset *r);
/*
* Note that the consume function can return an error value apart from
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.