From 458bb8c8a1b81f392a4cf7bf5eb562aea3cdd1bf Mon Sep 17 00:00:00 2001 From: manfromafar Date: Sun, 7 Mar 2021 10:39:16 -0700 Subject: [PATCH] Clarify compressed zfs send/recv behavior Docs for send and receive do not explain behavior when sending a compressed stream then receiving on a host that overrides compression with -o compress=value. The data from the send stream is written as it was from the send is the compressed form but the compression algorithm set on the receiver is the overridden version which causes some confusion as to what algorithm was actually used. Updated man docs to clarify behavior Reviewed-by: Brian Behlendorf Reviewed By: Allan Jude Signed-off-by: manfromafar Closes #11690 --- man/man8/zfs-receive.8 | 10 ++++++++++ man/man8/zfs-send.8 | 7 ++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/man/man8/zfs-receive.8 b/man/man8/zfs-receive.8 index ed5cbbdf0..982e3b961 100644 --- a/man/man8/zfs-receive.8 +++ b/man/man8/zfs-receive.8 @@ -261,6 +261,16 @@ causes the property to be inherited by all descendant datasets, as through was run on any descendant datasets that have this property set on the sending system. .Pp +If the send stream was sent with +.Fl c +then overriding the +.Sy compression +property will have no affect on received data but the +.Sy compression +property will be set. To have the data recompressed on receive remove the +.Fl c +flag from the send stream. +.Pp Any editable property can be set at receive time. Set-once properties bound to the received data, such as .Sy normalization diff --git a/man/man8/zfs-send.8 b/man/man8/zfs-send.8 index 1a241a52d..91c1484c7 100644 --- a/man/man8/zfs-send.8 +++ b/man/man8/zfs-send.8 @@ -189,7 +189,12 @@ feature is enabled on the sending system but the option is not supplied in conjunction with .Fl c , then the data will be decompressed before sending so it can be split into -smaller block sizes. +smaller block sizes. Streams sent with +.Fl c +will not have their data recompressed on the receiver side using +.Fl o compress=value. +The data will stay compressed as it was from the sender. The new compression +property will be set for future data. .It Fl w, -raw For encrypted datasets, send data exactly as it exists on disk. This allows backups to be taken even if encryption keys are not currently loaded. The