Date: Wed, 21 Feb 2018 18:12:19 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r329738 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs Message-ID: <201802211812.w1LICJAO016554@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mav Date: Wed Feb 21 18:12:19 2018 New Revision: 329738 URL: https://svnweb.freebsd.org/changeset/base/329738 Log: MFV r329736: 8969 Cannot boot from RAIDZ with parity > 1 illumos/illumos-gate@0fb055e81fd0cda5221da8ddd98b2f8d1fc6bdbe At present it is possible to boot from a root pool that is on RAIDZ but not one that is on RAIDZ2 or RAIDZ3. This is because, at the time the pool version is checked to ensure support for dual/triple parity, the uberblock has not yet been loaded into the SPA and therefore the code determines that the pool version is too old and returns ENOTSUP. Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed by: Andriy Gapon <avg@FreeBSD.org> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Andy Stormont <astormont@racktopsystems.com> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Gordon Ross <gwr@nexenta.com> Author: Andy Fiddaman <omnios@citrus-it.co.uk> FreeBSD already had this fixed, so this is just a diff reduction. Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Wed Feb 21 18:10:50 2018 (r329737) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Wed Feb 21 18:12:19 2018 (r329738) @@ -30,6 +30,7 @@ * Copyright 2016 Toomas Soome <tsoome@me.com> * Copyright 2017 Joyent, Inc. * Copyright (c) 2017 Datto Inc. + * Copyright 2018 OmniOS Community Edition (OmniOSce) Association. */ /* @@ -4141,6 +4142,9 @@ spa_import_rootpool(char *devpath, char *devid) spa = spa_add(pname, config, NULL); spa->spa_is_root = B_TRUE; spa->spa_import_flags = ZFS_IMPORT_VERBATIM; + if (nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, + &spa->spa_ubsync.ub_version) != 0) + spa->spa_ubsync.ub_version = SPA_VERSION_INITIAL; /* * Build up a vdev tree based on the boot device's label config.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802211812.w1LICJAO016554>