usr/src/uts/common/fs/vfs.c
changeset 3912 f6891a60bd72
parent 3904 73066af3aa6a
child 3957 86c9dda5df37
--- a/usr/src/uts/common/fs/vfs.c	Wed Mar 28 12:00:22 2007 -0700
+++ b/usr/src/uts/common/fs/vfs.c	Wed Mar 28 12:48:13 2007 -0700
@@ -990,7 +990,7 @@
 	int		addmip = 0;
 	int		splice = ((uap->flags & MS_NOSPLICE) == 0);
 	int		fromspace = (uap->flags & MS_SYSSPACE) ?
-				UIO_SYSSPACE : UIO_USERSPACE;
+	    UIO_SYSSPACE : UIO_USERSPACE;
 	char		*resource = NULL, *mountpt = NULL;
 	refstr_t	*oldresource, *oldmntpt;
 	struct pathname	pn, rpn;
@@ -1092,7 +1092,7 @@
 			inargs[0] = '\0';
 			if (optlen) {
 				error = copyinstr(opts, inargs, (size_t)optlen,
-					NULL);
+				    NULL);
 				if (error) {
 					goto errout;
 				}
@@ -1165,7 +1165,7 @@
 		 */
 		if ((uap->flags & MS_GLOBAL) == 0 &&
 		    lookupname(uap->spec, fromspace,
-			    FOLLOW, NULL, &bvp) == 0) {
+		    FOLLOW, NULL, &bvp) == 0) {
 			addmip = 1;
 		}
 
@@ -1359,8 +1359,8 @@
 	 * wlock above. This case is for a non-spliced, non-global filesystem.
 	 */
 	if (!addmip) {
-	    if ((uap->flags & MS_GLOBAL) == 0 &&
-		lookupname(uap->spec, fromspace, FOLLOW, NULL, &bvp) == 0) {
+		if ((uap->flags & MS_GLOBAL) == 0 &&
+		    lookupname(uap->spec, fromspace, FOLLOW, NULL, &bvp) == 0) {
 			addmip = 1;
 		}
 	}
@@ -1447,11 +1447,11 @@
 			/* put back pre-remount options */
 			vfs_swapopttbl(&mnt_mntopts, &vfsp->vfs_mntopts);
 			vfs_setmntpoint(vfsp, (stripzonepath(
-					refstr_value(oldmntpt))));
+			    refstr_value(oldmntpt))));
 			if (oldmntpt)
 				refstr_rele(oldmntpt);
 			vfs_setresource(vfsp, (stripzonepath(
-					refstr_value(oldresource))));
+			    refstr_value(oldresource))));
 			if (oldresource)
 				refstr_rele(oldresource);
 			vfsp->vfs_flag = ovflags;
@@ -1533,7 +1533,7 @@
 		if (uap->flags & MS_OPTIONSTR) {
 			vfs_list_read_lock();
 			copyout_error = vfs_buildoptionstr(
-				&vfsp->vfs_mntopts, inargs, optlen);
+			    &vfsp->vfs_mntopts, inargs, optlen);
 			vfs_list_unlock();
 			if (copyout_error == 0 &&
 			    (uap->flags & MS_SYSSPACE) == 0) {
@@ -2746,7 +2746,7 @@
 		 */
 		vfs_list_lock();
 		for (vfsp = rootvfs->vfs_prev;
-			vfsp != rootvfs; vfsp = vfsp->vfs_prev)
+		    vfsp != rootvfs; vfsp = vfsp->vfs_prev)
 			if (vfsp == prev_vfsp)
 				break;
 		if (vfsp == rootvfs && prev_vfsp != rootvfs)
@@ -2788,7 +2788,7 @@
 	mutex_enter(&vfs_miplist_mutex);
 	mipprev = NULL;
 	for (mipp = vfs_miplist;
-		mipp && mipp->mip_vfsp != vfsp; mipp = mipp->mip_next) {
+	    mipp && mipp->mip_vfsp != vfsp; mipp = mipp->mip_next) {
 		mipprev = mipp;
 	}
 	if (mipp == NULL)
@@ -4162,6 +4162,16 @@
 	    == DDI_SUCCESS) {
 		(void) strncpy(rootfs.bo_fstype, propstr, BO_MAXFSNAME);
 		ddi_prop_free(propstr);
+
+	/*
+	 * if the boot property 'fstype' is not set, but 'zfs-bootfs' is set,
+	 * assume the type of this root filesystem is 'zfs'.
+	 */
+	} else if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
+	    DDI_PROP_DONTPASS, "zfs-bootfs", &propstr)
+	    == DDI_SUCCESS) {
+		(void) strncpy(rootfs.bo_fstype, "zfs", BO_MAXFSNAME);
+		ddi_prop_free(propstr);
 	}
 
 	if (strncmp(rootfs.bo_fstype, "nfs", 3) != 0)