From e768971e2fdfd2ff97e2a6f48a969ea5e516e37f Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Tue, 17 Mar 2026 10:15:16 -0700 Subject: [PATCH] libfrog: allow bitmap_free to handle a null bitmap pointer Allow bitmap_free() callers to pass a pointer to a NULL pointer. This will help subsequent refactorings in xfs_scrub have cleaner bitmap_free callsites. Signed-off-by: "Darrick J. Wong" Reviewed-by: Christoph Hellwig --- libfrog/bitmap.c | 3 +++ repair/rmap.c | 3 +-- scrub/phase5.c | 6 ++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libfrog/bitmap.c b/libfrog/bitmap.c index 0308886d..6a3d852c 100644 --- a/libfrog/bitmap.c +++ b/libfrog/bitmap.c @@ -109,6 +109,9 @@ bitmap_free( struct bitmap_node *ext; bmap = *bmapp; + if (!bmap) + return; + avl_for_each_safe(bmap->bt_tree, node, n) { ext = container_of(node, struct bitmap_node, btn_node); free(ext); diff --git a/repair/rmap.c b/repair/rmap.c index e89bd32d..55c2b092 100644 --- a/repair/rmap.c +++ b/repair/rmap.c @@ -752,8 +752,7 @@ err_slab: err: if (agflbp) libxfs_buf_relse(agflbp); - if (own_ag_bitmap) - bitmap_free(&own_ag_bitmap); + bitmap_free(&own_ag_bitmap); return error; } diff --git a/scrub/phase5.c b/scrub/phase5.c index 577dda80..52bbbca4 100644 --- a/scrub/phase5.c +++ b/scrub/phase5.c @@ -897,10 +897,8 @@ _("Filesystem has errors, skipping connectivity checks.")); scrub_report_preen_triggers(ctx); out_lock: pthread_mutex_destroy(&ncs.lock); - if (ncs.new_deferred) - bitmap_free(&ncs.new_deferred); - if (ncs.cur_deferred) - bitmap_free(&ncs.cur_deferred); + bitmap_free(&ncs.new_deferred); + bitmap_free(&ncs.cur_deferred); return ret; } -- 2.47.3