svn commit: r329738 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Alexander Motin mav at FreeBSD.org
Wed Feb 21 18:12:20 UTC 2018


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 at 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 at dilos.org>
  Reviewed by: Andriy Gapon <avg at FreeBSD.org>
  Reviewed by: Pavel Zakharov <pavel.zakharov at delphix.com>
  Reviewed by: Andy Stormont <astormont at racktopsystems.com>
  Reviewed by: Toomas Soome <tsoome at me.com>
  Approved by: Gordon Ross <gwr at nexenta.com>
  Author: Andy Fiddaman <omnios at 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 at 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.


More information about the svn-src-head mailing list