]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r294815: MFV r294814: 6393 zfs receive a full send as a clone
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 21 Mar 2016 00:01:59 +0000 (00:01 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 21 Mar 2016 00:01:59 +0000 (00:01 +0000)
commit8e7c82c1d3c7c5482296116303f3876bc3ddf88b
treea2190e50d6460e105b863e499bc39784054a7d00
parent6e5b62acd4b3f751fd077747878bb586be8163bb
MFC r294815: MFV r294814: 6393 zfs receive a full send as a clone

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Author: Paul Dagnelie <pcd@delphix.com>

illumos/illumos-gate@68ecb2ec930c4b0f00acaf8e0abb2b19c4b8b76f

This allows to do a full (non-incremental send) and receive it as a clone
of an existing dataset. It can leverage nopwrite to share blocks with the
origin. This can be used to change the relationship of datasets on the
target. For example, maybe on the source you have:

A ---- B ---- C

And you have sent to the target a full of B, and the incremental B->C:

B ---- C

You later realize that you want to have A on the target. You will have to
do a full send of A, but nopwrite can save you space on the target if you
receive it as a clone of B, assuming that A and B have some blocks inxi
common:

B ---- C
 \
  A

git-svn-id: svn://svn.freebsd.org/base/stable/10@297102 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
cddl/contrib/opensolaris/cmd/zfs/zfs.8
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h