]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix 'zfs recv' of non large_dnode send streams
authorTom Caputi <tcaputi@datto.com>
Thu, 28 Jun 2018 21:55:11 +0000 (17:55 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 28 Jun 2018 21:55:11 +0000 (14:55 -0700)
commitda2feb42fb5c7a8c1e1cc67f7a880da9d8e97bc2
treeb29b779bb5e70b9dfbd0bf81f512dedee17175ad
parentedf60b864505497dc8c4f09d4ce2190c72f1e2c2
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
module/zfs/dmu_object.c
module/zfs/dmu_send.c