changeset 9996:c439ba713aee

6856014 Fast reboot should pass only one side of the mirror to zfs_mountroot()
author Sherry Moore <Sherry.Moore@Sun.COM>
date Mon, 29 Jun 2009 22:03:21 -0700
parents d626655ec3b9
children 174d75a29a1c
files usr/src/lib/libgrubmgmt/common/libgrub_fs.c
diffstat 1 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/lib/libgrubmgmt/common/libgrub_fs.c	Mon Jun 29 13:59:59 2009 -0700
+++ b/usr/src/lib/libgrubmgmt/common/libgrub_fs.c	Mon Jun 29 22:03:21 2009 -0700
@@ -173,6 +173,8 @@
 	}
 
 	free(tmp);
+	if (ret)
+		ret = ENODEV;
 	return (ret);
 }
 
@@ -413,11 +415,17 @@
 			return (EG_OPENZFS);
 
 		/*
-		 * get_zfs_root returns non-zero on failure, not
-		 * errno.
+		 * get_zfs_root returns non-zero on failure, not errno.
 		 */
 		if (get_zfs_root(zfh, fs, root))
 			rc = EG_CURROOT;
+		else
+			/*
+			 * For mirrored root physpath would contain the list of
+			 * all bootable devices, pick up the first one.
+			 */
+			rc = get_one_physpath(root->gr_physpath, SLCNUM_INVALID,
+			    PRTNUM_INVALID);
 
 		zfs_close(zfh);