]> git.proxmox.com Git - mirror_zfs.git/commit
Implementation of block cloning for ZFS
authorPawel Jakub Dawidek <pawel@dawidek.net>
Fri, 10 Mar 2023 19:59:53 +0000 (20:59 +0100)
committerGitHub <noreply@github.com>
Fri, 10 Mar 2023 19:59:53 +0000 (11:59 -0800)
commit67a1b0379159c46bcd60a462a2790248046c8804
treedbba99ec9db66f8afefebad07caa22d36f04f3ff
parentda19d919a853ad05ef300fe000e6c96c4db84bcf
Implementation of block cloning for ZFS

Block Cloning allows to manually clone a file (or a subset of its
blocks) into another (or the same) file by just creating additional
references to the data blocks without copying the data itself.
Those references are kept in the Block Reference Tables (BRTs).

The whole design of block cloning is documented in module/zfs/brt.c.

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Christian Schwarz <christian.schwarz@nutanix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Rich Ercolani <rincebrain@gmail.com>
Signed-off-by: Pawel Jakub Dawidek <pawel@dawidek.net>
Closes #13392
51 files changed:
cmd/zdb/zdb_il.c
cmd/ztest.c
include/Makefile.am
include/os/freebsd/zfs/sys/zfs_znode_impl.h
include/os/linux/kernel/linux/mod_compat.h
include/os/linux/zfs/sys/zfs_znode_impl.h
include/sys/bitmap.h [new file with mode: 0644]
include/sys/brt.h [new file with mode: 0644]
include/sys/dbuf.h
include/sys/ddt.h
include/sys/dmu.h
include/sys/dmu_tx.h
include/sys/fs/zfs.h
include/sys/spa_impl.h
include/sys/zfs_debug.h
include/sys/zfs_vnops.h
include/sys/zfs_znode.h
include/sys/zil.h
include/sys/zio.h
include/sys/zio_impl.h
include/zfeature_common.h
lib/libzfs/libzfs.abi
lib/libzfs/libzfs_pool.c
lib/libzpool/Makefile.am
man/man7/zpool-features.7
man/man7/zpoolprops.7
module/Kbuild.in
module/Makefile.bsd
module/os/freebsd/zfs/sysctl_os.c
module/os/freebsd/zfs/zfs_vfsops.c
module/os/freebsd/zfs/zfs_vnops_os.c
module/os/freebsd/zfs/zfs_znode.c
module/zcommon/zfeature_common.c
module/zcommon/zpool_prop.c
module/zfs/brt.c [new file with mode: 0644]
module/zfs/dbuf.c
module/zfs/ddt.c
module/zfs/dmu.c
module/zfs/dmu_tx.c
module/zfs/dsl_scan.c
module/zfs/spa.c
module/zfs/spa_misc.c
module/zfs/zfs_ioctl.c
module/zfs/zfs_log.c
module/zfs/zfs_quota.c
module/zfs/zfs_replay.c
module/zfs/zfs_vnops.c
module/zfs/zil.c
module/zfs/zio.c
module/zfs/zvol.c
tests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get.cfg