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

Andriy Gapon avg at FreeBSD.org
Mon Sep 5 21:18:43 UTC 2016


On 05/09/2016 23:47, Andriy Gapon wrote:
> Alexander,
> 
> I belive that this commit accidentally breaks the following scenario:
> zpool create tank /dev/xxx
> zpool destroy tank
> zpool create tank /dev/xxx
> 
> It seems that vdev_geom code is unaware of SPA_LOAD_CREATE state and it would
> try to match a device GUID, if it can be read, in addition to a name.

And a rather trivial (and maybe not quite correct) fix:

diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
index 077983ca847c8..818052ba577ec 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
@@ -777,7 +777,8 @@ vdev_geom_open(vdev_t *vd, uint64_t *psize, uint64_t *max_psize,

 	if (vd->vdev_spa->spa_splitting_newspa ||
 	    (vd->vdev_prevstate == VDEV_STATE_UNKNOWN &&
-	     vd->vdev_spa->spa_load_state == SPA_LOAD_NONE)) {
+	     vd->vdev_spa->spa_load_state == SPA_LOAD_NONE ||
+	     vd->vdev_spa->spa_load_state == SPA_LOAD_CREATE)) {
 		/*
 		 * We are dealing with a vdev that hasn't been previously
 		 * opened (since boot), and we are not loading an


-- 
Andriy Gapon


More information about the svn-src-head mailing list