HomeFreeBSD

Fix livelist assertions for dedup and cloning

Description

Fix livelist assertions for dedup and cloning

Two block pointers in livelist pointing to the same location may
be caused not only by dedup, but also by block cloning. We should
not assert D bit set in them.

Two block pointers in livelist pointing to the same location may
have different logical birth time in case of dedup or cloning. We
should assert identical physical birth time instead.

Assert identical physical block size between pointers in addition
to checksum, since that is what checksums are calculated on.

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #15732

Details

Provenance
mavAuthored on Jan 9 2024, 5:48 PM
GitHub <noreply@github.com>Committed on Jan 9 2024, 5:48 PM
Parents
rG255741fc9755: Improve block sizes checks during cloning
Branches
Unknown
Tags
Unknown