HomeFreeBSD

Additional limits on hole reporting

Description

Additional limits on hole reporting

Holding the zp->z_rangelock as a RL_READER over the range
0-UINT64_MAX is sufficient to prevent the dnode from being
re-dirtied by concurrent writers. To avoid potentially
looping multiple times for external caller which do not
take the rangelock holes are not reported after the first
sync. While not optimal this is always functionally correct.

This change adds the missing rangelock calls on FreeBSD to
zvol_cdev_ioctl().

Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #14512
Closes #14641

Details

Provenance
Brian Behlendorf <behlendorf1@llnl.gov>Authored on Mar 28 2023, 3:19 PM
GitHub <noreply@github.com>Committed on Mar 28 2023, 3:19 PM
Parents
rGa604d3243b0f: Revert "Do not hold spa_config in ZIL while blocked on IO"
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG64bfa6bae3dd: Additional limits on hole reporting (authored by Brian Behlendorf <behlendorf1@llnl.gov>).Mar 28 2023, 3:19 PM