mirror_zfs/lib/libzfs
Alexander Motin 60f714e6e2 Implement physical rewrites
Based on previous commit this implements `zfs rewrite -P` flag,
making ZFS to keep blocks logical birth times while rewriting
files.  It should exclude the rewritten blocks from incremental
sends, snapshot diffs, etc.  Snapshots space usage same time will
reflect the additional space usage from newly allocated blocks.

Since this begins to use new "rewrite" flag in the block pointers,
this commit introduces a new read-compatible per-dataset feature
physical_rewrite.  It must be enabled for the command to not fail,
it is activated on first use and deactivated on deletion of the
last affected dataset.

Reviewed-by: Rob Norris <robn@despairlabs.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by:  Alexander Motin <alexander.motin@TrueNAS.com>
Closes #17565
2025-08-06 10:36:56 -07:00
..
os libzfs: ensure all ioctl calls go through lzc_ioctl_fd() 2025-05-21 09:23:23 -07:00
.gitignore Clean up lib dependencies 2020-07-10 14:26:00 -07:00
libzfs_changelist.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzfs_config.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzfs_crypto.c everywhere: misc unnecessary var init/update 2025-07-22 15:23:58 -07:00
libzfs_dataset.c Relax special_small_blocks restrictions 2025-07-02 11:11:37 -07:00
libzfs_diff.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzfs_impl.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzfs_import.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzfs_iter.c Sort the blocking snapshots list #12751 (#17264) 2025-05-01 17:40:23 -07:00
libzfs_mount.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzfs_pool.c Add TXG timestamp database 2025-08-06 10:31:21 -07:00
libzfs_sendrecv.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzfs_status.c Add no-upgrade featureflag 2025-07-09 14:01:59 -07:00
libzfs_util.c libzfs: ensure all ioctl calls go through lzc_ioctl_fd() 2025-05-21 09:23:23 -07:00
libzfs.abi Implement physical rewrites 2025-08-06 10:36:56 -07:00
libzfs.pc.in Spruce up pkg-config files for libzfs/libzfs_core 2020-09-04 11:11:18 -07:00
libzfs.suppr Library ABI tracking with abigail 2020-11-17 09:18:52 -08:00
Makefile.am Bump SONAME of libzfs and libzpool 2024-10-06 14:49:33 -07:00
THIRDPARTYLICENSE.openssl Fix typos in lib/ 2019-09-02 17:53:27 -07:00
THIRDPARTYLICENSE.openssl.descrip Encryption patch follow-up 2017-10-11 16:54:48 -04:00