xref: /freebsd/tests/sys/cddl/zfs/tests/zil/zil.kshlib (revision 069ac184)
1# vim: filetype=sh
2#
3# CDDL HEADER START
4#
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.
8#
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.
13#
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]
19#
20# CDDL HEADER END
21#
22
23#
24# Copyright 2012 Spectra Logic Corporation.  All rights reserved.
25# Use is subject to license terms.
26#
27
28# Every test must restart the frozen pool state.
29function zil_setup
30{
31	log_must $ZPOOL list $TESTPOOL
32
33	# In order for a frozen zpool to have a ZIL, it is necessary to
34	# sync it first.  If a sync is not done first, no ZIL will exist,
35	# and consequently no post-freeze log records will be created.
36	log_must $TOUCH $TESTDIR/initial_data
37	log_must $FSYNC $TESTDIR/initial_data
38	log_must $ZPOOL freeze $TESTPOOL
39	log_must filesys_has_zil $TESTPOOL
40	return 0
41}
42
43function zil_reimport_pool
44{
45	typeset pool="$1"
46	log_must filesys_has_zil $pool
47	log_must pool_maps_intact $pool
48	log_must $ZPOOL export $pool
49	log_must $ZPOOL import $pool
50	log_must pool_maps_intact $pool
51	log_mustnot filesys_has_zil $pool
52	return 0
53}
54