Date: Tue, 6 Sep 2016 00:17:19 +0300 From: Andriy Gapon <avg@FreeBSD.org> To: Alexander Motin <mav@FreeBSD.org>, src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Subject: Re: svn commit: r305331 - in head/sys/cddl/contrib/opensolaris/uts/common: fs/zfs fs/zfs/sys sys/fs Message-ID: <c6db6a18-9a59-4cfd-ca4f-2505b7ab33aa@FreeBSD.org> In-Reply-To: <ad2ddbfb-101f-d297-d64d-1fae9ee341da@FreeBSD.org> References: <201609031004.u83A4bI0097105@repo.freebsd.org> <ad2ddbfb-101f-d297-d64d-1fae9ee341da@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c6db6a18-9a59-4cfd-ca4f-2505b7ab33aa>
