Print this page
4220 beadm mount of old BE with zones fails "Read only filesystem"
4235 beadm(1M) mount options undocumented in man page

*** 380,408 **** * mount all supported non-global zones. */ if (getzoneid() == GLOBAL_ZONEID && !(flags & BE_MOUNT_FLAG_NO_ZONES) && be_get_uuid(bt.obe_root_ds, &uu) == BE_SUCCESS) { ! if ((ret = be_mount_zones(zhp, &md)) != BE_SUCCESS) { ! (void) _be_unmount(bt.obe_name, 0); ! if (gen_tmp_altroot) ! free(tmp_altroot); ! ZFS_CLOSE(zhp); ! return (ret); } } ZFS_CLOSE(zhp); /* * If a NULL altroot was passed in, pass the generated altroot * back to the caller in altroot. */ ! if (gen_tmp_altroot) *altroot = tmp_altroot; ! return (BE_SUCCESS); } /* * Function: _be_unmount * Description: Unmount a BE. --- 380,408 ---- * mount all supported non-global zones. */ if (getzoneid() == GLOBAL_ZONEID && !(flags & BE_MOUNT_FLAG_NO_ZONES) && be_get_uuid(bt.obe_root_ds, &uu) == BE_SUCCESS) { ! if (be_mount_zones(zhp, &md) != BE_SUCCESS) { ! ret = BE_ERR_NO_MOUNTED_ZONE; } } ZFS_CLOSE(zhp); /* * If a NULL altroot was passed in, pass the generated altroot * back to the caller in altroot. */ ! if (gen_tmp_altroot) { ! if (ret == BE_SUCCESS || ret == BE_ERR_NO_MOUNTED_ZONE) *altroot = tmp_altroot; + else + free(tmp_altroot); + } ! return (ret); } /* * Function: _be_unmount * Description: Unmount a BE.
*** 1710,1723 **** } /* * Function: loopback_mount_zonepath * Description: This function loopback mounts a zonepath into the altroot ! * area of the BE being mounted. Since these are shared file ! * systems, they are expected to be already mounted for the ! * current BE, and this function just loopback mounts them into ! * the BE mountpoint. * Parameters: * zonepath - pointer to zone path in the current BE * md - be_mount_data_t pointer * Returns: * BE_SUCCESS - Success --- 1710,1720 ---- } /* * Function: loopback_mount_zonepath * Description: This function loopback mounts a zonepath into the altroot ! * area of the BE being mounted. * Parameters: * zonepath - pointer to zone path in the current BE * md - be_mount_data_t pointer * Returns: * BE_SUCCESS - Success