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 <behlendorf1@llnl.gov>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #14575
This commit is contained in:
Richard Yao 2023-03-04 22:31:33 -05:00 committed by Brian Behlendorf
parent 45c446308a
commit 51f55742f6
1 changed files with 1 additions and 0 deletions

View File

@ -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); dmu_buf_rele(bpo->bpo_cached_dbuf, bpo);
VERIFY3U(0, ==, dmu_buf_hold(bpo->bpo_os, bpo->bpo_object, VERIFY3U(0, ==, dmu_buf_hold(bpo->bpo_os, bpo->bpo_object,
offset, bpo, &bpo->bpo_cached_dbuf, 0)); offset, bpo, &bpo->bpo_cached_dbuf, 0));
ASSERT3P(bpo->bpo_cached_dbuf, !=, NULL);
} }
dmu_buf_will_dirty(bpo->bpo_cached_dbuf, tx); dmu_buf_will_dirty(bpo->bpo_cached_dbuf, tx);