]> git.proxmox.com Git - mirror_zfs.git/commit
Fix livelist assertions for dedup and cloning
authorAlexander Motin <mav@FreeBSD.org>
Tue, 9 Jan 2024 17:48:40 +0000 (12:48 -0500)
committerGitHub <noreply@github.com>
Tue, 9 Jan 2024 17:48:40 +0000 (09:48 -0800)
commite78aca3b332da945f0becb3575ff51208a55fff2
tree6d6e4ea3bdea179d456969432fdf9a385def1488
parent255741fc9755186975d3c2b60ee2be4027800778
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
module/zfs/dsl_deadlist.c