]>
Commit | Line | Data |
---|---|---|
a1d477c2 MA |
1 | #! /bin/ksh -p |
2 | # | |
3 | # CDDL HEADER START | |
4 | # | |
5 | # This file and its contents are supplied under the terms of the | |
6 | # Common Development and Distribution License ("CDDL"), version 1.0. | |
7 | # You may only use this file in accordance with the terms of version | |
8 | # 1.0 of the CDDL. | |
9 | # | |
10 | # A full copy of the text of the CDDL should have accompanied this | |
11 | # source. A copy of the CDDL is also available via the Internet at | |
12 | # http://www.illumos.org/license/CDDL. | |
13 | # | |
14 | # CDDL HEADER END | |
15 | # | |
16 | ||
17 | # | |
d2734cce | 18 | # Copyright (c) 2015, 2017 by Delphix. All rights reserved. |
a1d477c2 MA |
19 | # |
20 | ||
21 | . $STF_SUITE/include/libtest.shlib | |
22 | . $STF_SUITE/tests/functional/removal/removal.kshlib | |
23 | ||
6e91a72f BB |
24 | # N.B. The 'zfs remap' command has been disabled and may be removed. |
25 | export ZFS_REMAP_ENABLED=YES | |
26 | ||
a1d477c2 MA |
27 | default_setup_noexit "$DISKS" |
28 | log_onexit default_cleanup_noexit | |
29 | ||
30 | log_must dd if=/dev/zero of=$TESTDIR/file bs=1024k count=300 | |
31 | ||
32 | log_must zfs snapshot $TESTPOOL/$TESTFS@snap-pre1 | |
33 | log_must dd if=/dev/zero of=$TESTDIR/file bs=1024k count=100 \ | |
34 | conv=notrunc seek=100 | |
35 | ||
36 | log_must zfs snapshot $TESTPOOL/$TESTFS@snap-pre2 | |
37 | log_must dd if=/dev/zero of=$TESTDIR/file bs=1024k count=100 \ | |
38 | conv=notrunc seek=200 | |
39 | ||
a1d477c2 | 40 | if is_linux; then |
d2734cce | 41 | log_must attempt_during_removal $TESTPOOL $REMOVEDISK zdb -cd $TESTPOOL |
a1d477c2 | 42 | else |
d2734cce | 43 | log_must attempt_during_removal $TESTPOOL $REMOVEDISK |
a1d477c2 MA |
44 | fi |
45 | log_mustnot vdevs_in_pool $TESTPOOL $REMOVEDISK | |
46 | log_must zdb -cd $TESTPOOL | |
47 | ||
48 | log_must zfs remap $TESTPOOL/$TESTFS | |
49 | log_must zdb -cd $TESTPOOL | |
50 | ||
51 | log_must zfs snapshot $TESTPOOL/$TESTFS@snap-post3 | |
52 | log_must zdb -cd $TESTPOOL | |
53 | ||
54 | log_must zfs snapshot $TESTPOOL/$TESTFS@snap-post4 | |
55 | log_must zdb -cd $TESTPOOL | |
56 | ||
57 | # | |
58 | # Test case where block is moved from remap deadlist: blocks born before | |
59 | # snap-pre2 will be obsoleted. | |
60 | # | |
61 | log_must zfs destroy $TESTPOOL/$TESTFS@snap-pre2 | |
62 | log_must zdb -cd $TESTPOOL | |
63 | ||
64 | # | |
65 | # Test case where we merge remap deadlists: blocks before snap-pre1 will | |
66 | # need to go on snap-post4's deadlist. | |
67 | # | |
68 | log_must zfs destroy $TESTPOOL/$TESTFS@snap-post3 | |
69 | log_must zdb -cd $TESTPOOL | |
70 | ||
71 | log_must zfs destroy $TESTPOOL/$TESTFS@snap-post4 | |
72 | ||
73 | # | |
74 | # Test rollback. | |
75 | # | |
76 | log_must zfs rollback $TESTPOOL/$TESTFS@snap-pre1 | |
77 | log_must zfs destroy $TESTPOOL/$TESTFS@snap-pre1 | |
78 | ||
79 | log_pass "Remove and remap works with snapshots and deadlists." |