diff options
author | Paul Zuchowski <[email protected]> | 2019-02-15 15:41:38 -0500 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2019-02-15 12:41:38 -0800 |
commit | 9c5e88b1ded19cb4b19b9d767d5c71b34c189540 (patch) | |
tree | 08a51e07bb19bae06bdfbc61ae36b140514870ae /include | |
parent | e73ab1b38cd099f3416eed0ab5576639383bbdcc (diff) |
zfs should optionally send holds
Add -h switch to zfs send command to send dataset holds. If
holds are present in the stream, zfs receive will create them
on the target dataset, unless the zfs receive -h option is used
to skip receive of holds.
Reviewed-by: Alek Pinchuk <[email protected]>
Reviewed-by: loli10K <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed by: Paul Dagnelie <[email protected]>
Signed-off-by: Paul Zuchowski <[email protected]>
Closes #7513
Diffstat (limited to 'include')
-rw-r--r-- | include/libzfs.h | 9 | ||||
-rw-r--r-- | include/sys/zfs_ioctl.h | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/include/libzfs.h b/include/libzfs.h index 72d956b41..65b06f7a8 100644 --- a/include/libzfs.h +++ b/include/libzfs.h @@ -645,6 +645,9 @@ typedef struct sendflags { /* only send received properties (ie. -b) */ boolean_t backup; + + /* include snapshot holds in send stream */ + boolean_t holds; } sendflags_t; typedef boolean_t (snapfilter_cb_t)(zfs_handle_t *, void *); @@ -707,6 +710,12 @@ typedef struct recvflags { /* do not mount file systems as they are extracted (private) */ boolean_t nomount; + + /* Was holds flag set in the compound header? */ + boolean_t holds; + + /* skip receive of snapshot holds */ + boolean_t skipholds; } recvflags_t; extern int zfs_receive(libzfs_handle_t *, const char *, nvlist_t *, diff --git a/include/sys/zfs_ioctl.h b/include/sys/zfs_ioctl.h index a552fad37..f8c65f581 100644 --- a/include/sys/zfs_ioctl.h +++ b/include/sys/zfs_ioctl.h @@ -106,6 +106,7 @@ typedef enum drr_headertype { #define DMU_BACKUP_FEATURE_LARGE_DNODE (1 << 23) #define DMU_BACKUP_FEATURE_RAW (1 << 24) /* flag #25 is reserved for the ZSTD compression feature */ +#define DMU_BACKUP_FEATURE_HOLDS (1 << 26) /* * Mask of all supported backup features @@ -115,7 +116,7 @@ typedef enum drr_headertype { DMU_BACKUP_FEATURE_EMBED_DATA | DMU_BACKUP_FEATURE_LZ4 | \ DMU_BACKUP_FEATURE_RESUMING | DMU_BACKUP_FEATURE_LARGE_BLOCKS | \ DMU_BACKUP_FEATURE_COMPRESSED | DMU_BACKUP_FEATURE_LARGE_DNODE | \ - DMU_BACKUP_FEATURE_RAW) + DMU_BACKUP_FEATURE_RAW | DMU_BACKUP_FEATURE_HOLDS) /* Are all features in the given flag word currently supported? */ #define DMU_STREAM_SUPPORTED(x) (!((x) & ~DMU_BACKUP_FEATURE_MASK)) |