HomeFreeBSD

Fix unallocated object detection for large_dnode datasets

Description

Fix unallocated object detection for large_dnode datasets

Fix dmu_object_next() to correctly handle unallocated objects on
large_dnode datasets.

We implement this by scanning the dnode block until we find the correct
offset to be used in dnode_next_offset(). This is necessary because we
can't assume *objectp is a hole even if dmu_object_info() returns
ENOENT.

This fixes a couple of issues with zfs receive on large_dnode datasets.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ned Bass <bass6@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #5027
Closes #5532

Details

Provenance
LOLi <loli10K@users.noreply.github.com>Authored on Jan 13 2017, 11:47 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Jan 13 2017, 11:47 PM
Parents
rG5043684ae511: OpenZFS 7603 - xuio_stat_wbuf_* should be declared (void)
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG08f0510d8718: Fix unallocated object detection for large_dnode datasets (authored by LOLi <loli10K@users.noreply.github.com>).Jan 13 2017, 11:47 PM