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

Alan Somers asomers at FreeBSD.org
Thu Apr 14 23:14:42 UTC 2016


Author: asomers
Date: Thu Apr 14 23:14:41 2016
New Revision: 298017
URL: https://svnweb.freebsd.org/changeset/base/298017

Log:
  Add more debugging statements in vdev_geom.c
  
  Log a debugging message whenever geom functions fail in vdev_geom_attach.
  Printing these messages is controlled by vfs.zfs.debug
  
  MFC after:	4 weeks
  Sponsored by:	Spectra Logic Corp

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c	Thu Apr 14 22:51:23 2016	(r298016)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c	Thu Apr 14 23:14:41 2016	(r298017)
@@ -163,6 +163,7 @@ vdev_geom_attach(struct g_provider *pp, 
 {
 	struct g_geom *gp;
 	struct g_consumer *cp;
+	int error;
 
 	g_topology_assert();
 
@@ -180,11 +181,17 @@ vdev_geom_attach(struct g_provider *pp, 
 		gp->orphan = vdev_geom_orphan;
 		gp->attrchanged = vdev_geom_attrchanged;
 		cp = g_new_consumer(gp);
-		if (g_attach(cp, pp) != 0) {
+		error = g_attach(cp, pp);
+		if (error != 0) {
+			ZFS_LOG(1, "%s(%d): g_attach failed: %d\n", __func__,
+			    __LINE__, error);
 			g_wither_geom(gp, ENXIO);
 			return (NULL);
 		}
-		if (g_access(cp, 1, 0, 1) != 0) {
+		error = g_access(cp, 1, 0, 1);
+		if (error != 0) {
+			ZFS_LOG(1, "%s(%d): g_access failed: %d\n", __func__,
+			       __LINE__, error);
 			g_wither_geom(gp, ENXIO);
 			return (NULL);
 		}
@@ -199,19 +206,29 @@ vdev_geom_attach(struct g_provider *pp, 
 		}
 		if (cp == NULL) {
 			cp = g_new_consumer(gp);
-			if (g_attach(cp, pp) != 0) {
+			error = g_attach(cp, pp);
+			if (error != 0) {
+				ZFS_LOG(1, "%s(%d): g_attach failed: %d\n",
+				    __func__, __LINE__, error);
 				g_destroy_consumer(cp);
 				return (NULL);
 			}
-			if (g_access(cp, 1, 0, 1) != 0) {
+			error = g_access(cp, 1, 0, 1);
+			if (error != 0) {
+				ZFS_LOG(1, "%s(%d): g_access failed: %d\n",
+				    __func__, __LINE__, error);
 				g_detach(cp);
 				g_destroy_consumer(cp);
 				return (NULL);
 			}
 			ZFS_LOG(1, "Created consumer for %s.", pp->name);
 		} else {
-			if (g_access(cp, 1, 0, 1) != 0)
+			error = g_access(cp, 1, 0, 1);
+			if (error != 0) {
+				ZFS_LOG(1, "%s(%d): g_access failed: %d\n",
+				    __func__, __LINE__, error);
 				return (NULL);
+			}
 			ZFS_LOG(1, "Used existing consumer for %s.", pp->name);
 		}
 	}


More information about the svn-src-all mailing list