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
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.
18 # Copyright (c) 2014, 2017 by Delphix. All rights reserved.
21 .
$STF_SUITE/include
/libtest.shlib
22 .
$STF_SUITE/tests
/functional
/removal
/removal.kshlib
24 TMPDIR
=${TMPDIR:-/var/tmp}
25 log_must mkfile
1g
$TMPDIR/dsk1
26 log_must mkfile
1g
$TMPDIR/dsk2
27 DISKS
="$TMPDIR/dsk1 $TMPDIR/dsk2"
28 REMOVEDISK
=$TMPDIR/dsk1
30 default_setup_noexit
"$DISKS"
34 default_cleanup_noexit
40 log_must zfs
set compression
=off
$TESTPOOL/$TESTFS
42 # Write a little under half the pool.
43 log_must file_write
-o create
-f $TESTDIR/$TESTFILE1 -b $
((2**20)) -c $
((2**9))
46 # Start a writing thread to ensure the removal will take a while.
47 # This will automatically die when we destroy the pool.
49 start_random_writer
$TESTDIR/$TESTFILE1
53 # Attempt to write more than the new pool will be able to handle.
54 file_write
-o create
-f $TESTDIR/$TESTFILE2 -b $
((2**20)) -c $
((2**9))
57 log_note
"file_write returned $zret"
58 (( $zret == $ENOSPC )) || log_fail
"Did not get ENOSPC during removal."
61 log_must attempt_during_removal
$TESTPOOL $REMOVEDISK callback
63 log_pass
"Removal properly sets reservation."