2N/A#!/usr/bin/ksh -p
2N/A#
2N/A# CDDL HEADER START
2N/A#
2N/A# The contents of this file are subject to the terms of the
2N/A# Common Development and Distribution License (the "License").
2N/A# You may not use this file except in compliance with the License.
2N/A#
2N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A# or http://www.opensolaris.org/os/licensing.
2N/A# See the License for the specific language governing permissions
2N/A# and limitations under the License.
2N/A#
2N/A# When distributing Covered Code, include this CDDL HEADER in each
2N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A# If applicable, add the following below this CDDL HEADER, with the
2N/A# fields enclosed by brackets "[]" replaced with your own identifying
2N/A# information: Portions Copyright [yyyy] [name of copyright owner]
2N/A#
2N/A# CDDL HEADER END
2N/A#
2N/A
2N/A#
2N/A# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
2N/A# Use is subject to license terms.
2N/A#
2N/A
2N/A#
2N/A# Copyright (c) 2013, 2016 by Delphix. All rights reserved.
2N/A#
2N/A
2N/A. $STF_SUITE/include/libtest.shlib
2N/A. $STF_SUITE/tests/functional/inuse/inuse.cfg
2N/A
2N/A#
2N/A# DESCRIPTION:
2N/A# ZFS will not interfere with devices that are in use by dumpadm.
2N/A#
2N/A# STRATEGY:
2N/A# 1. Create crash dump device using 'dumpadm'
2N/A# 2. Try to create a ZFS pool using the 'dumpadm' crash dump device.
2N/A#
2N/A
2N/Averify_runnable "global"
2N/A
2N/Afunction cleanup
2N/A{
2N/A #
2N/A # Remove dump device.
2N/A #
2N/A if [[ -n $PREVDUMPDEV ]]; then
2N/A log_must dumpadm -u -d $PREVDUMPDEV > /dev/null
2N/A fi
2N/A
2N/A destroy_pool $TESTPOOL
2N/A}
2N/A
2N/Alog_assert "Ensure ZFS cannot use a device designated as a dump device"
log_onexit cleanup
typeset dumpdev=""
typeset diskslice=""
PREVDUMPDEV=`dumpadm | grep "Dump device" | awk '{print $3}'`
log_note "Zero $FS_DISK0 and place free space in to slice 0"
log_must cleanup_devices $FS_DISK0
diskslice="/dev/dsk/${FS_DISK0}s0"
log_note "Configuring $diskslice as dump device"
log_must dumpadm -d $diskslice > /dev/null
log_note "Confirm that dump device has been setup"
dumpdev=`dumpadm | grep "Dump device" | awk '{print $3}'`
[[ -z "$dumpdev" ]] && log_untested "No dump device has been configured"
[[ "$dumpdev" != "$diskslice" ]] && \
log_untested "Dump device has not been been configured to $diskslice"
log_note "Attempt to zpool the dump device"
unset NOINUSE_CHECK
log_mustnot zpool create $TESTPOOL "$diskslice"
log_mustnot poolexists $TESTPOOL
log_pass "Unable to zpool a device in use by dumpadm"