Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Nov 2011 19:47:11 +0000 (UTC)
From:      Xin LI <delphij@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r228144 - projects/zfsd/head/cddl/sbin/zfsd
Message-ID:  <201111291947.pATJlBWC064172@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: delphij
Date: Tue Nov 29 19:47:11 2011
New Revision: 228144
URL: http://svn.freebsd.org/changeset/base/228144

Log:
  Handle ZfsdException while parsing the pool and give more meaningful log
  instead of stopping and start over in the main loop.

Modified:
  projects/zfsd/head/cddl/sbin/zfsd/dev_ctl_event.cc

Modified: projects/zfsd/head/cddl/sbin/zfsd/dev_ctl_event.cc
==============================================================================
--- projects/zfsd/head/cddl/sbin/zfsd/dev_ctl_event.cc	Tue Nov 29 19:46:17 2011	(r228143)
+++ projects/zfsd/head/cddl/sbin/zfsd/dev_ctl_event.cc	Tue Nov 29 19:47:11 2011	(r228144)
@@ -455,9 +455,18 @@ DevfsEvent::ReadLabel(int devFd, bool &i
 		 || devLabel == NULL)
 			return (NULL);
 
-		Vdev vdev(devLabel);
-		degraded = vdev.State() != VDEV_STATE_HEALTHY;
-		return (devLabel);
+		try {
+			Vdev vdev(devLabel);
+			degraded = vdev.State() != VDEV_STATE_HEALTHY;
+			return (devLabel);
+		} catch (ZfsdException &exp) {
+			string devName = fdevname(devFd);
+			string devPath = _PATH_DEV + devName;
+			string context("DevfsEvent::ReadLabel: " + devPath + ": ");
+
+			exp.GetString().insert(0, context);
+			exp.Log();
+		}
 	}
 	return (NULL);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201111291947.pATJlBWC064172>