1eda14cbcSMatt Macy#!/bin/ksh -p
2eda14cbcSMatt Macy#
3eda14cbcSMatt Macy# CDDL HEADER START
4eda14cbcSMatt Macy#
5eda14cbcSMatt Macy# The contents of this file are subject to the terms of the
6eda14cbcSMatt Macy# Common Development and Distribution License (the "License").
7eda14cbcSMatt Macy# You may not use this file except in compliance with the License.
8eda14cbcSMatt Macy#
9eda14cbcSMatt Macy# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*271171e0SMartin Matuska# or https://opensource.org/licenses/CDDL-1.0.
11eda14cbcSMatt Macy# See the License for the specific language governing permissions
12eda14cbcSMatt Macy# and limitations under the License.
13eda14cbcSMatt Macy#
14eda14cbcSMatt Macy# When distributing Covered Code, include this CDDL HEADER in each
15eda14cbcSMatt Macy# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16eda14cbcSMatt Macy# If applicable, add the following below this CDDL HEADER, with the
17eda14cbcSMatt Macy# fields enclosed by brackets "[]" replaced with your own identifying
18eda14cbcSMatt Macy# information: Portions Copyright [yyyy] [name of copyright owner]
19eda14cbcSMatt Macy#
20eda14cbcSMatt Macy# CDDL HEADER END
21eda14cbcSMatt Macy#
22eda14cbcSMatt Macy
23eda14cbcSMatt Macy#
24eda14cbcSMatt Macy# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
25eda14cbcSMatt Macy# Use is subject to license terms.
26eda14cbcSMatt Macy#
27eda14cbcSMatt Macy
28eda14cbcSMatt Macy#
29eda14cbcSMatt Macy# Copyright (c) 2013, 2016 by Delphix. All rights reserved.
30eda14cbcSMatt Macy# Copyright 2016 Nexenta Systems, Inc.
31eda14cbcSMatt Macy#
32eda14cbcSMatt Macy
33eda14cbcSMatt Macy. $STF_SUITE/include/libtest.shlib
34eda14cbcSMatt Macy. $STF_SUITE/tests/functional/zvol/zvol_common.shlib
35eda14cbcSMatt Macy
36eda14cbcSMatt Macy#
37eda14cbcSMatt Macy# DESCRIPTION:
38eda14cbcSMatt Macy#	Verify creating a storage pool or running newfs on a zvol used as a
39eda14cbcSMatt Macy#	dump device is denied.
40eda14cbcSMatt Macy#
41eda14cbcSMatt Macy# STRATEGY:
42eda14cbcSMatt Macy# 1. Create a ZFS volume
43eda14cbcSMatt Macy# 2. Use dumpadm to set the volume as dump device
44eda14cbcSMatt Macy# 3. Verify creating a pool & running newfs on the zvol returns an error.
45eda14cbcSMatt Macy#
46eda14cbcSMatt Macy
47eda14cbcSMatt Macyverify_runnable "global"
48eda14cbcSMatt Macy
49eda14cbcSMatt Macyif ! is_physical_device $DISKS; then
50eda14cbcSMatt Macy	log_unsupported "This directory cannot be run on raw files."
51eda14cbcSMatt Macyfi
52eda14cbcSMatt Macy
53eda14cbcSMatt Macyvolsize=$(zfs get -H -o value volsize $TESTPOOL/$TESTVOL)
54eda14cbcSMatt Macy
55eda14cbcSMatt Macyfunction cleanup
56eda14cbcSMatt Macy{
57eda14cbcSMatt Macy	typeset dumpdev=$(get_dumpdevice)
58eda14cbcSMatt Macy	if [[ $dumpdev != $savedumpdev ]] ; then
59eda14cbcSMatt Macy		safe_dumpadm $savedumpdev
60eda14cbcSMatt Macy	fi
61eda14cbcSMatt Macy
62eda14cbcSMatt Macy	if poolexists $TESTPOOL1 ; then
63eda14cbcSMatt Macy		destroy_pool $TESTPOOL1
64eda14cbcSMatt Macy	fi
65eda14cbcSMatt Macy	zfs set volsize=$volsize $TESTPOOL/$TESTVOL
66eda14cbcSMatt Macy}
67eda14cbcSMatt Macy
68eda14cbcSMatt Macylog_assert "Verify zpool creation and newfs on dump zvol is denied."
69eda14cbcSMatt Macylog_onexit cleanup
70eda14cbcSMatt Macy
71eda14cbcSMatt Macyvoldev=${ZVOL_DEVDIR}/$TESTPOOL/$TESTVOL
72eda14cbcSMatt Macysavedumpdev=$(get_dumpdevice)
73eda14cbcSMatt Macy
74eda14cbcSMatt Macysafe_dumpadm $voldev
75eda14cbcSMatt Macy
76eda14cbcSMatt Macyunset NOINUSE_CHECK
77eda14cbcSMatt Macylog_mustnot eval "new_fs $voldev > /dev/null 2>&1"
78eda14cbcSMatt Macy
79eda14cbcSMatt Macylog_mustnot zpool create $TESTPOOL1 $voldev
80eda14cbcSMatt Macy
81eda14cbcSMatt Macylog_pass "Verify zpool creation and newfs on dump zvol is denied."
82