diff options
author | Pawel Jakub Dawidek <[email protected]> | 2023-03-10 20:59:53 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2023-03-10 11:59:53 -0800 |
commit | 67a1b0379159c46bcd60a462a2790248046c8804 (patch) | |
tree | dbba99ec9db66f8afefebad07caa22d36f04f3ff /include/sys/spa_impl.h | |
parent | da19d919a853ad05ef300fe000e6c96c4db84bcf (diff) |
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 <[email protected]>
Reviewed-by: Christian Schwarz <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Rich Ercolani <[email protected]>
Signed-off-by: Pawel Jakub Dawidek <[email protected]>
Closes #13392
Diffstat (limited to 'include/sys/spa_impl.h')
-rw-r--r-- | include/sys/spa_impl.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sys/spa_impl.h b/include/sys/spa_impl.h index cde08ec9b..8ccd58b58 100644 --- a/include/sys/spa_impl.h +++ b/include/sys/spa_impl.h @@ -380,6 +380,7 @@ struct spa { uint64_t spa_dedup_dspace; /* Cache get_dedup_dspace() */ uint64_t spa_dedup_checksum; /* default dedup checksum */ uint64_t spa_dspace; /* dspace in normal class */ + struct brt *spa_brt; /* in-core BRT */ kmutex_t spa_vdev_top_lock; /* dueling offline/remove */ kmutex_t spa_proc_lock; /* protects spa_proc* */ kcondvar_t spa_proc_cv; /* spa_proc_state transitions */ |