HomeFreeBSD

nopwrites on dmu_sync-ed blocks can result in a panic

Description

nopwrites on dmu_sync-ed blocks can result in a panic

After a device has been removed, any nopwrites for blocks on that
indirect vdev should be ignored and a new block should be allocated. The
original code attempted to handle this but used the wrong block pointer
when checking for indirect vdevs and failed to check all DVAs.

This change corrects both of these issues and modifies the test case
to ensure that it properly tests nopwrites with device removal.

Reviewed-by: Prakash Surya <prakash.surya@delphix.com>
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: George Wilson <gwilson@delphix.com>
Closes #14235

Details

Provenance
George Wilson <george.wilson@delphix.com>Authored on Dec 3 2022, 1:45 AM
GitHub <noreply@github.com>Committed on Dec 3 2022, 1:45 AM
Parents
rG2c590bdede78: ZTS: test reported checksum errors for ZED
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rGd7cf06a25d29: nopwrites on dmu_sync-ed blocks can result in a panic (authored by George Wilson <george.wilson@delphix.com>).Dec 3 2022, 1:45 AM