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

Andriy Gapon avg at FreeBSD.org
Mon Sep 15 08:58:19 UTC 2014


On 11/09/2014 19:21, Steven Hartland wrote:
> Author: smh
> Date: Thu Sep 11 16:21:51 2014
> New Revision: 271429
> URL: http://svnweb.freebsd.org/changeset/base/271429
> 
> Log:
>   Persist vdev_resilver_txg changes to avoid panic caused by validation
>   vs a vdev_resilver_txg value from a previous resilver.

Looks that this change is a prime candidate for a discussion with OpenZFS folks.
 I know that it is a pain to go through all hoops for submitting a change to
illumos, but at the very least we should let them know of the problem.

>   MFC after:	1 week
> 
> Modified:
>   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
> 
> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
> ==============================================================================
> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c	Thu Sep 11 15:36:36 2014	(r271428)
> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c	Thu Sep 11 16:21:51 2014	(r271429)
> @@ -1951,12 +1951,15 @@ vdev_dtl_reassess(vdev_t *vd, uint64_t t
>  
>  		/*
>  		 * If the vdev was resilvering and no longer has any
> -		 * DTLs then reset its resilvering flag.
> +		 * DTLs then reset its resilvering flag and dirty
> +		 * the top level so that we persist the change.
>  		 */
>  		if (vd->vdev_resilver_txg != 0 &&
>  		    range_tree_space(vd->vdev_dtl[DTL_MISSING]) == 0 &&
> -		    range_tree_space(vd->vdev_dtl[DTL_OUTAGE]) == 0)
> +		    range_tree_space(vd->vdev_dtl[DTL_OUTAGE]) == 0) {
>  			vd->vdev_resilver_txg = 0;
> +			vdev_config_dirty(vd->vdev_top);
> +		}
>  
>  		mutex_exit(&vd->vdev_dtl_lock);
>  
> 


-- 
Andriy Gapon


More information about the svn-src-head mailing list