mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 11:25:21 +01:00
BRT: Check bv_mos_entries in brt_entry_lookup()
When vdev first sees some block cloning, there is a window when brt_maybe_exists() might already return true since something was cloned, but bv_mos_entries is still 0 since BRT ZAP was not yet created. In such case we should not try to look into the ZAP and dereference NULL bv_mos_entries_dnode. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Rob Norris <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Sponsored by: iXsystems, Inc. Closes #16851
This commit is contained in:
1 parent
e0039c7057
commit
19a04e5ad2
1 file changed
+3
@@ -859,6 +859,9 @@ brt_entry_lookup(brt_vdev_t *brtvd, brt_entry_t *bre)
|
||||
{
|
||||
uint64_t off = BRE_OFFSET(bre);
|
||||
|
||||
if (brtvd->bv_mos_entries == 0)
|
||||
return (SET_ERROR(ENOENT));
|
||||
|
||||
return (zap_lookup_uint64_by_dnode(brtvd->bv_mos_entries_dnode,
|
||||
&off, BRT_KEY_WORDS, 1, sizeof (bre->bre_count), &bre->bre_count));
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user