Date: Wed, 27 Apr 2016 20:12:16 +0000 (UTC) From: Alan Somers <asomers@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r298719 - projects/zfsd/head/cddl/sbin/zfsd Message-ID: <201604272012.u3RKCGhf098205@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604272012.u3RKCGhf098205>