a010b40938
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
134 lines
4.8 KiB
Diff
134 lines
4.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Toomas Soome <tsoome@me.com>
|
|
Date: Wed, 1 Jun 2016 19:18:10 +0300
|
|
Subject: [PATCH] OpenZFS 8906 - uts: illumos rootfs should support salted
|
|
cksum
|
|
|
|
Porting notes:
|
|
* As of grub-2.02 these checksums are not supported. However, as
|
|
pointed out in #6501 there are alternatives such as EFISTUB which
|
|
work and have no such restriction. A warning was added to the
|
|
checksum property section of the zfs.8 man page.
|
|
|
|
Authored by: Toomas Soome <tsoome@me.com>
|
|
Reviewed by: C Fraire <cfraire@me.com>
|
|
Reviewed by: Robert Mustacchi <rm@joyent.com>
|
|
Reviewed by: Yuri Pankov <yuripv@yuripv.net>
|
|
Approved by: Dan McDonald <danmcd@joyent.com>
|
|
Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
|
|
|
OpenZFS-issue: https://illumos.org/issues/8906
|
|
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/7dec52f
|
|
Closes #6501
|
|
Closes #7714
|
|
|
|
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
|
---
|
|
man/man5/zpool-features.5 | 18 +++++++-----------
|
|
man/man8/zfs.8 | 5 ++++-
|
|
module/zfs/zfs_ioctl.c | 11 +----------
|
|
3 files changed, 12 insertions(+), 22 deletions(-)
|
|
|
|
diff --git a/man/man5/zpool-features.5 b/man/man5/zpool-features.5
|
|
index 78ea559f..140ce269 100644
|
|
--- a/man/man5/zpool-features.5
|
|
+++ b/man/man5/zpool-features.5
|
|
@@ -14,7 +14,7 @@
|
|
.\" CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your
|
|
.\" own identifying information:
|
|
.\" Portions Copyright [yyyy] [name of copyright owner]
|
|
-.TH ZPOOL-FEATURES 5 "Aug 27, 2013"
|
|
+.TH ZPOOL-FEATURES 5 "Jun 8, 2018"
|
|
.SH NAME
|
|
zpool\-features \- ZFS pool feature descriptions
|
|
.SH DESCRIPTION
|
|
@@ -248,8 +248,9 @@ immediately activate the \fBlz4_compress\fR feature on the underlying
|
|
pool using the \fBzfs\fR(1M) command. Also, all newly written metadata
|
|
will be compressed with \fBlz4\fR algorithm. Since this feature is not
|
|
read-only compatible, this operation will render the pool unimportable
|
|
-on systems without support for the \fBlz4_compress\fR feature. Booting
|
|
-off of \fBlz4\fR-compressed root pools is supported.
|
|
+on systems without support for the \fBlz4_compress\fR feature.
|
|
+
|
|
+Booting off of \fBlz4\fR-compressed root pools is supported.
|
|
|
|
This feature becomes \fBactive\fR as soon as it is enabled and will
|
|
never return to being \fBenabled\fB.
|
|
@@ -510,8 +511,7 @@ can turn on the \fBsha512\fR checksum on any dataset using the
|
|
and will return to being \fBenabled\fR once all filesystems that have
|
|
ever had their checksum set to \fBsha512\fR are destroyed.
|
|
|
|
-Booting off of pools utilizing SHA-512/256 is supported (provided that
|
|
-the updated GRUB stage2 module is installed).
|
|
+Booting off of pools utilizing SHA-512/256 is supported.
|
|
|
|
.RE
|
|
|
|
@@ -545,9 +545,7 @@ can turn on the \fBskein\fR checksum on any dataset using the
|
|
and will return to being \fBenabled\fR once all filesystems that have
|
|
ever had their checksum set to \fBskein\fR are destroyed.
|
|
|
|
-Booting off of pools using \fBskein\fR is \fBNOT\fR supported
|
|
--- any attempt to enable \fBskein\fR on a root pool will fail with an
|
|
-error.
|
|
+Booting off of pools using \fBskein\fR is supported.
|
|
|
|
.RE
|
|
|
|
@@ -587,9 +585,7 @@ can turn on the \fBedonr\fR checksum on any dataset using the
|
|
and will return to being \fBenabled\fR once all filesystems that have
|
|
ever had their checksum set to \fBedonr\fR are destroyed.
|
|
|
|
-Booting off of pools using \fBedonr\fR is \fBNOT\fR supported
|
|
--- any attempt to enable \fBedonr\fR on a root pool will fail with an
|
|
-error.
|
|
+Booting off of pools using \fBedonr\fR is supported.
|
|
|
|
.RE
|
|
|
|
diff --git a/man/man8/zfs.8 b/man/man8/zfs.8
|
|
index 48a5e6ea..bb3b46e3 100644
|
|
--- a/man/man8/zfs.8
|
|
+++ b/man/man8/zfs.8
|
|
@@ -29,7 +29,7 @@
|
|
.\" Copyright 2016 Nexenta Systems, Inc.
|
|
.\" Copyright 2016 Richard Laager. All rights reserved.
|
|
.\"
|
|
-.Dd June 28, 2017
|
|
+.Dd July 13, 2018
|
|
.Dt ZFS 8 SMM
|
|
.Os Linux
|
|
.Sh NAME
|
|
@@ -1049,6 +1049,9 @@ The
|
|
and
|
|
.Sy edonr
|
|
checksum algorithms require enabling the appropriate features on the pool.
|
|
+These algorithms are not supported by GRUB and should not be set on the
|
|
+.Sy bootfs
|
|
+filesystem when using GRUB to boot the system.
|
|
Please see
|
|
.Xr zpool-features 5
|
|
for more information on these algorithms.
|
|
diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c
|
|
index f4f509a7..6516f646 100644
|
|
--- a/module/zfs/zfs_ioctl.c
|
|
+++ b/module/zfs/zfs_ioctl.c
|
|
@@ -3985,16 +3985,7 @@ zfs_check_settable(const char *dsname, nvpair_t *pair, cred_t *cr)
|
|
|
|
if ((err = spa_open(dsname, &spa, FTAG)) != 0)
|
|
return (err);
|
|
- /*
|
|
- * Salted checksums are not supported on root pools.
|
|
- */
|
|
- if (spa_bootfs(spa) != 0 &&
|
|
- intval < ZIO_CHECKSUM_FUNCTIONS &&
|
|
- (zio_checksum_table[intval].ci_flags &
|
|
- ZCHECKSUM_FLAG_SALTED)) {
|
|
- spa_close(spa, FTAG);
|
|
- return (SET_ERROR(ERANGE));
|
|
- }
|
|
+
|
|
if (!spa_feature_is_enabled(spa, feature)) {
|
|
spa_close(spa, FTAG);
|
|
return (SET_ERROR(ENOTSUP));
|