6366731 zfs and gcc don't get along anymore
authoreschrock
Sun, 01 Jan 2006 19:39:54 -0800
changeset 1199 6e3b7bca3574
parent 1198 114ff946851a
child 1200 9bb3b43b9b42
6366731 zfs and gcc don't get along anymore 6367359 'zpool offline' fails, cannot offline device: device not in pool
usr/src/uts/common/fs/zfs/dbuf.c
usr/src/uts/common/fs/zfs/dnode_sync.c
usr/src/uts/common/fs/zfs/vdev.c
--- a/usr/src/uts/common/fs/zfs/dbuf.c	Sun Jan 01 02:57:51 2006 -0800
+++ b/usr/src/uts/common/fs/zfs/dbuf.c	Sun Jan 01 19:39:54 2006 -0800
@@ -20,7 +20,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -1791,8 +1791,9 @@
 		for (i = 0; i < (1 << epbs); i++) {
 			if (!BP_IS_HOLE(&bplist[i])) {
 				panic("data past EOF: "
-				    "db=%p level=%d id=%lld i=%d\n",
-				    db, db->db_level, db->db_blkid, i);
+				    "db=%p level=%d id=%llu i=%d\n",
+				    db, db->db_level,
+				    (u_longlong_t)db->db_blkid, i);
 			}
 		}
 		mutex_exit(&db->db_mtx);
--- a/usr/src/uts/common/fs/zfs/dnode_sync.c	Sun Jan 01 02:57:51 2006 -0800
+++ b/usr/src/uts/common/fs/zfs/dnode_sync.c	Sun Jan 01 19:39:54 2006 -0800
@@ -20,7 +20,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -528,7 +528,7 @@
 		if (!(off < dn->dn_phys->dn_maxblkid ||
 		    dn->dn_phys->dn_maxblkid == 0 ||
 		    dnode_next_offset(dn, FALSE, &off, 1, 1) == ESRCH))
-			panic("data after EOF: off=%lld\n", off);
+			panic("data after EOF: off=%llu\n", (u_longlong_t)off);
 
 		dn->dn_dirtyblksz[txgoff] = 0;
 
--- a/usr/src/uts/common/fs/zfs/vdev.c	Sun Jan 01 02:57:51 2006 -0800
+++ b/usr/src/uts/common/fs/zfs/vdev.c	Sun Jan 01 19:39:54 2006 -0800
@@ -20,7 +20,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -143,8 +143,19 @@
 	int c;
 	vdev_t *mvd;
 
-	if (vd->vdev_path != NULL && strcmp(path, vd->vdev_path) == 0)
-		return (vd);
+	if (vd->vdev_path != NULL) {
+		if (vd->vdev_wholedisk == 1) {
+			/*
+			 * For whole disks, the internal path has 's0', but the
+			 * path passed in by the user doesn't.
+			 */
+			if (strlen(path) == strlen(vd->vdev_path) - 2 &&
+			    strncmp(path, vd->vdev_path, strlen(path)) == 0)
+				return (vd);
+		} else if (strcmp(path, vd->vdev_path) == 0) {
+			return (vd);
+		}
+	}
 
 	for (c = 0; c < vd->vdev_children; c++)
 		if ((mvd = vdev_lookup_by_path(vd->vdev_child[c], path)) !=