Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Feb 2018 18:09:07 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r329736 - vendor-sys/illumos/dist/uts/common/fs/zfs
Message-ID:  <201802211809.w1LI97iE011697@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Wed Feb 21 18:09:07 2018
New Revision: 329736
URL: https://svnweb.freebsd.org/changeset/base/329736

Log:
  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>

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c	Wed Feb 21 17:46:13 2018	(r329735)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c	Wed Feb 21 18:09:07 2018	(r329736)
@@ -29,6 +29,7 @@
  * Copyright 2016 Toomas Soome <tsoome@me.com>
  * Copyright 2017 Joyent, Inc.
  * Copyright (c) 2017 Datto Inc.
+ * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
  */
 
 /*
@@ -4051,6 +4052,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?201802211809.w1LI97iE011697>