HomeFreeBSD

dbuf: Handle arcbuf assignment after block cloning

Description

dbuf: Handle arcbuf assignment after block cloning

In some cases dbuf_assign_arcbuf() may be called on a block that
was recently cloned. If it happened in current TXG we must undo
the block cloning first, since the only one dirty record per TXG
can't and shouldn't mean both cloning and overwrite same time.

Reviewed-by: Kay Pedersen <mail@mkwg.de>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #15653

Details

Provenance
mavAuthored on Dec 12 2023, 8:53 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Jan 9 2024, 12:11 AM
Parents
rGb13c91bb2997: DMU: Fix lock leak on dbuf_hold() error
Branches
Unknown
Tags
Unknown