mirror_zfs/cmd
Christian Schwarz a73f361fdb Implement bookmark copying
This feature allows copying existing bookmarks using

    zfs bookmark fs#target fs#newbookmark

There are some niche use cases for such functionality,
e.g. when using bookmarks as markers for replication progress.

Copying redaction bookmarks produces a normal bookmark that
cannot be used for redacted send (we are not duplicating
the redaction object).

ZCP support for bookmarking (both creation and copying) will be
implemented in a separate patch based on this work.

Overview:

- Terminology:
    - source = existing snapshot or bookmark
    - new/bmark = new bookmark
- Implement bookmark copying in `dsl_bookmark.c`
  - create new bookmark node
  - copy source's `zbn_phys` to new's `zbn_phys`
  - zero-out redaction object id in copy
- Extend existing bookmark ioctl nvlist schema to accept
  bookmarks as sources
  - => `dsl_bookmark_create_nvl_validate` is authoritative
- use `dsl_dataset_is_before` check for both snapshot
  and bookmark sources
- Adjust CLI
  - refactor shortname expansion logic in `zfs_do_bookmark`
- Update man pages
  - warn about redaction bookmark handling
- Add test cases
  - CLI
  - pyyzfs libzfs_core bindings

Reviewed-by: Matt Ahrens <matt@delphix.com>
Reviewed-by: Paul Dagnelie <pcd@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Christian Schwarz <me@cschwarz.com>
Closes #9571
2020-02-11 13:19:12 -08:00
..
arc_summary Fix reporting of L2ARC hits/misses in arc_summary3 2019-12-04 13:24:55 -08:00
arcstat Add FreeBSD code to arc_summary and arcstat 2019-11-30 15:43:23 -08:00
dbufstat Detect if sed supports --in-place 2019-10-16 19:19:48 -07:00
fsck_zfs Fix typos in cmd/ 2019-08-30 09:43:30 -07:00
mount_zfs OpenZFS restructuring - libspl 2019-10-02 10:39:48 -07:00
raidz_test Add AltiVec RAID-Z 2020-01-23 11:01:24 -08:00
vdev_id Fix typos in cmd/ 2019-08-30 09:43:30 -07:00
zdb Fix zdb -R with 'b' flag 2020-02-10 14:00:05 -08:00
zed OpenZFS restructuring - libzutil 2019-10-03 10:20:44 -07:00
zfs Implement bookmark copying 2020-02-11 13:19:12 -08:00
zgenhostid bash scripts: use /usr/bin/env for bash shebangs 2020-02-10 13:13:46 -08:00
zhack Add zfs_file_* interface, remove vnodes 2019-11-21 09:32:57 -08:00
zinject Remove ECKSUM alias in zinject 2019-11-01 10:31:42 -07:00
zpool Fix static data to link with -fno-common 2020-02-06 09:25:29 -08:00
zstreamdump OpenZFS restructuring - libspl 2019-10-02 10:39:48 -07:00
ztest Replace ASSERTV macro with compiler annotation 2019-12-05 12:37:00 -08:00
zvol_id OpenZFS restructuring - libspl 2019-10-02 10:39:48 -07:00
zvol_wait zvol_wait should ignore redacted zvols 2019-11-06 10:51:19 -08:00
Makefile.am Isolate code specific to Linux in cmd/ 2019-11-11 09:24:04 -08:00