From owner-svn-src-projects@freebsd.org Wed Apr 27 20:12:17 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 688D1B1E466 for ; Wed, 27 Apr 2016 20:12:17 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 37FEC1A21; Wed, 27 Apr 2016 20:12:17 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u3RKCGaC098206; Wed, 27 Apr 2016 20:12:16 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u3RKCGhf098205; Wed, 27 Apr 2016 20:12:16 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201604272012.u3RKCGhf098205@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 27 Apr 2016 20:12:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r298719 - projects/zfsd/head/cddl/sbin/zfsd X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2016 20:12:17 -0000 Author: asomers Date: Wed Apr 27 20:12:16 2016 New Revision: 298719 URL: https://svnweb.freebsd.org/changeset/base/298719 Log: zfsd should attempt to activate a hotspare whenever a vdev becomes UNAVAIL. This is rare, but sometimes happens when you would expect the REMOVED state instead. I think it happens if vdev_reopen fails before vdev_geom_orphan gets called. Sponsored by: Spectra Logic Corp Modified: projects/zfsd/head/cddl/sbin/zfsd/case_file.cc Modified: projects/zfsd/head/cddl/sbin/zfsd/case_file.cc ============================================================================== --- projects/zfsd/head/cddl/sbin/zfsd/case_file.cc Wed Apr 27 20:09:02 2016 (r298718) +++ projects/zfsd/head/cddl/sbin/zfsd/case_file.cc Wed Apr 27 20:12:16 2016 (r298719) @@ -442,11 +442,12 @@ CaseFile::ReEvaluate(const ZfsEvent &eve } else if (event.Value("class") == "resource.fs.zfs.statechange") { RefreshVdevState(); /* - * If this vdev is DEGRADED or FAULTED, try to activate a - * hotspare. Otherwise, ignore the event + * If this vdev is DEGRADED, FAULTED, or UNAVAIL, try to + * activate a hotspare. Otherwise, ignore the event */ if (VdevState() == VDEV_STATE_FAULTED || - VdevState() == VDEV_STATE_DEGRADED) + VdevState() == VDEV_STATE_DEGRADED || + VdevState() == VDEV_STATE_CANT_OPEN) (void) ActivateSpare(); consumed = true; }