From 51f55742f6b8e2f8d5c34a4b01d6284a2f0aa67f Mon Sep 17 00:00:00 2001 From: Richard Yao Date: Sat, 4 Mar 2023 22:31:33 -0500 Subject: [PATCH] Suppress Clang Static Analyzer warning in bpobj_enqueue() scan-build does not do cross translation unit analysis to realize that `dmu_buf_hold()` will always set `bpo->bpo_cached_dbuf` to a non-NULL pointer, so we add an assertion to make it realize this. Reviewed-by: Brian Behlendorf Signed-off-by: Richard Yao Closes #14575 --- module/zfs/bpobj.c | 1 + 1 file changed, 1 insertion(+) diff --git a/module/zfs/bpobj.c b/module/zfs/bpobj.c index fa99f5141d..211bab5651 100644 --- a/module/zfs/bpobj.c +++ b/module/zfs/bpobj.c @@ -890,6 +890,7 @@ bpobj_enqueue(bpobj_t *bpo, const blkptr_t *bp, boolean_t bp_freed, dmu_buf_rele(bpo->bpo_cached_dbuf, bpo); VERIFY3U(0, ==, dmu_buf_hold(bpo->bpo_os, bpo->bpo_object, offset, bpo, &bpo->bpo_cached_dbuf, 0)); + ASSERT3P(bpo->bpo_cached_dbuf, !=, NULL); } dmu_buf_will_dirty(bpo->bpo_cached_dbuf, tx);