]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFV r351075: 10406 large_dnode changes broke zfs recv of legacy stream
authorAndriy Gapon <avg@FreeBSD.org>
Thu, 15 Aug 2019 15:11:20 +0000 (15:11 +0000)
committerAndriy Gapon <avg@FreeBSD.org>
Thu, 15 Aug 2019 15:11:20 +0000 (15:11 +0000)
commit30f7381b8e69dc369cb5ef90533428706b1d7ec4
treee4adcdb0f5050d4f575d517d9ac8abf956f902f8
parent93132b76cd43d0fa56449f00a1c0c5284aebfa5b
parent9aab037f9285496e41e79c4d8c5d456acb8ec137
MFV r351075: 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>

MFC after: 3 weeks
X-MFC after: r351074
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c