HomeFreeBSD

10406 large_dnode changes broke zfs recv of legacy stream

Description

10406 large_dnode changes broke zfs recv of legacy stream

illumos/illumos-gate@811964cd9f1fbae0fc3b93d116269e9b1fca090a
https://github.com/illumos/illumos-gate/commit/811964cd9f1fbae0fc3b93d116269e9b1fca090a

https://www.illumos.org/issues/10406

The large dnode changes from 8423 caused problems in zfs recv for a legacy
stream. This manifests when attempting to mount the received stream, but the
problem is in the receive code. We missed the following commit from ZoL which
fixes this.
commit da2feb42fb5c7a8c1e1cc67f7a880da9d8e97bc2
Author: Tom Caputi <tcaputi@datto.com>
Date: Thu Jun 28 17:55:11 2018 -0400
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.

Author: Tom Caputi <tcaputi@datto.com>

Details

Provenance
avgAuthored on
Parents
rS351074: MFV r350898: 8423 8199 7432 Implement large_dnode pool feature
Branches
Unknown
Tags
Unknown