From: Darrick J. Wong Date: Tue, 17 Mar 2026 17:15:16 +0000 (-0700) Subject: libfrog: allow bitmap_free to handle a null bitmap pointer X-Git-Tag: v7.0.0~30 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e768971e2fdfd2ff97e2a6f48a969ea5e516e37f;p=xfsprogs-dev.git 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 --- 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; }