5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
24 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
29 # Copyright (c) 2013, 2016 by Delphix. All rights reserved.
32 .
$STF_SUITE/include
/libtest.shlib
33 .
$STF_SUITE/tests
/functional
/cli_root
/zfs_rollback
/zfs_rollback_common.kshlib
34 .
$STF_SUITE/tests
/functional
/snapshot
/snapshot.cfg
39 # Verify that rollbacks succeed when there are nested file systems.
42 # 1) Snapshot an empty file system and rollback
43 # 2) Create a file in the file system
44 # 3) Rollback the file system to empty
45 # 4) Create a nested file system with the same name as the file created in (2)
46 # 5) Verify a rollback succeeds
49 verify_runnable
"both"
51 # https://github.com/zfsonlinux/zfs/issues/6143
53 log_unsupported
"Test case occasionally fails"
61 export __ZFS_POOL_RESTRICT
="$TESTPOOL"
63 unset __ZFS_POOL_RESTRICT
65 for snap
in "$SNAPPOOL.1" "$SNAPPOOL"
69 log_must zfs destroy
$snap
72 for fs
in "$TESTPOOL/$TESTFILE/$TESTFILE.1" "$TESTPOOL/$TESTFILE"
76 log_must zfs destroy
-r $fs
79 [[ -e /$TESTPOOL ]] && \
80 log_must
rm -rf $TESTPOOL/*
83 log_assert
"Verify rollback succeeds when there are nested file systems."
87 log_must zfs snapshot
$SNAPPOOL
88 log_must zfs rollback
$SNAPPOOL
89 log_mustnot zfs snapshot
$SNAPPOOL
91 log_must
touch /$TESTPOOL/$TESTFILE
93 log_must zfs rollback
$SNAPPOOL
94 log_must zfs create
$TESTPOOL/$TESTFILE
96 log_must zfs rollback
$SNAPPOOL
98 log_note
"Verify rollback of multiple nested file systems succeeds."
99 log_must zfs snapshot
$TESTPOOL/$TESTFILE@
$TESTSNAP
100 log_must zfs snapshot
$SNAPPOOL.1
102 export __ZFS_POOL_RESTRICT
="$TESTPOOL"
103 log_must zfs unmount
-a
104 log_must zfs mount
-a
105 unset __ZFS_POOL_RESTRICT
107 log_must
touch /$TESTPOOL/$TESTFILE/$TESTFILE.1
109 log_must zfs rollback
$SNAPPOOL.1
111 log_pass
"Rollbacks succeed when nested file systems are present."