HomeFreeBSD

Fix 'zfs recv' of non large_dnode send streams

Description

Fix 'zfs recv' of non large_dnode send streams

Currently, there is a bug where older send streams without the
DMU_BACKUP_FEATURE_LARGE_DNODE flag are not handled correctly.
The code in receive_object() fails to handle cases where
drro->drr_dn_slots is set to 0, which is always the case when the
sending code does not support this feature flag. This patch fixes
the issue by ensuring that that a value of 0 is treated as
DNODE_MIN_SLOTS.

Tested-by: DHE <git@dehacked.net>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #7617
Closes #7662

Details

Provenance
Tom Caputi <tcaputi@datto.com>Authored on Jun 28 2018, 9:55 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Jun 28 2018, 9:55 PM
Parents
rGedf60b864505: Enforce PROP_ONETIME on zpool properties
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGda2feb42fb5c: Fix 'zfs recv' of non large_dnode send streams (authored by Tom Caputi <tcaputi@datto.com>).Jun 28 2018, 9:55 PM