@@ -67,7 +67,7 @@ log_must zfs set xattr=sa $TEST_FS
for ((i=0; i < 100; i++)); do
dir="/$TEST_FS/dir.$i"
log_must mkdir "$dir"
log_must eval "xattrtest -R -r -y -x 1 -f 1024 -k -p $dir >/dev/null 2>&1 &"
log_must eval "$XATTRTEST -R -r -y -x 1 -f 1024 -k -p $dir >/dev/null 2>&1 &"
done

log_must wait
@@ -59,7 +59,7 @@ for ((i=0; i < 100; i++)); do
else
do_unlink="-f $((RANDOM % 1024))"
fi
log_must eval "xattrtest -R -r -y -x 1 $do_unlink -p $dir >/dev/null 2>&1 &"
log_must eval "$XATTRTEST -R -r -y -x 1 $do_unlink -p $dir >/dev/null 2>&1 &"
done

log_must wait
@@ -42,14 +42,14 @@ log_assert "Verify 'ulimit -f' maximum file size is enforced"

# Verify 'ulimit -f unlimited' works
log_must ulimit -f unlimited
log_must sh -c 'dd if=/dev/zero of=$TESTDIR/ulimit_write_file bs=1M count=2'
log_must sh -c 'truncate -s2M $TESTDIR/ulimit_trunc_file'
log_must sh -c 'dd if=/dev/zero of=$TESTDIR/ulimit_write_file bs=1m count=2'
log_must sh -c '$TRUNCATE -s2M $TESTDIR/ulimit_trunc_file'
log_must rm $TESTDIR/ulimit_write_file $TESTDIR/ulimit_trunc_file

# Verify 'ulimit -f <size>' works
log_must ulimit -f 1024
log_mustnot sh -c 'dd if=/dev/zero of=$TESTDIR/ulimit_write_file bs=1M count=2'
log_mustnot sh -c 'truncate -s2M $TESTDIR/ulimit_trunc_file'
log_mustnot sh -c 'dd if=/dev/zero of=$TESTDIR/ulimit_write_file bs=1m count=2'
log_mustnot sh -c '$TRUNCATE -s2M $TESTDIR/ulimit_trunc_file'
log_must rm $TESTDIR/ulimit_write_file $TESTDIR/ulimit_trunc_file

log_pass "Successfully enforced 'ulimit -f' maximum file size"
@@ -25,6 +25,6 @@ verify_runnable "global"

log_assert "libzfs ioctls handle invalid input arguments"

log_must libzfs_input_check $TESTPOOL
log_must $LIBZFS_INPUT_CHECK $TESTPOOL

log_pass "libzfs ioctls handle invalid input arguments"
@@ -43,8 +43,13 @@ main(int argc, char **argv)
struct rlimit limit;
libzfs_handle_t *h;

#ifdef __APPLE__
limit.rlim_cur = 1023;
limit.rlim_max = 1023;
#else
limit.rlim_cur = 65535;
limit.rlim_max = 65535;
#endif

if (setrlimit(RLIMIT_NOFILE, &limit) != 0) {
(void) printf("many_fds: setrlimit() failed with errno=%d\n",
@@ -104,7 +104,7 @@ function mmp_pool_create_simple # pool dir
typeset dir=${2:-$MMP_DIR}

log_must mkdir -p $dir
log_must truncate -s $MINVDEVSIZE $dir/vdev1 $dir/vdev2
log_must $TRUNCATE -s $MINVDEVSIZE $dir/vdev1 $dir/vdev2

log_must mmp_set_hostid $HOSTID1
log_must zpool create -f $pool mirror $dir/vdev1 $dir/vdev2
@@ -37,7 +37,7 @@
#

log_assert "kstats are published as sysctls."
log_onexit cleanup
#log_onexit cleanup

typeset -i i=0

@@ -65,6 +65,4 @@ while (( i < ${#ZFS_TUNEABLE_SYSCTLS[@]} )); do
(( i += 1 ))
done



log_pass
@@ -38,7 +38,7 @@

log_assert "Per dataset kstats are created and destroyed as dataset is imported and exported"

log_onexit cleanup
#log_onexit cleanup

DISK=${DISKS%% *}
default_setup $DISK
@@ -42,10 +42,10 @@ log_must zpool checkpoint -d $TESTPOOL
test_wait_discard_finish

log_must mkfile -n 100M $FS2FILE
log_must randwritecomp $FS2FILE 100
log_must $RANDWRITECOMP $FS2FILE 100
log_must zpool checkpoint $TESTPOOL

log_must randwritecomp $FS2FILE 100
log_must $RANDWRITECOMP $FS2FILE 100
log_must zpool checkpoint -d $TESTPOOL
test_wait_discard_finish

@@ -45,7 +45,7 @@ populate_nested_pool
INITSZ=$(zpool list -v | grep "$FILEDISK1" | awk '{print $2}')
log_must zpool checkpoint $NESTEDPOOL

log_must truncate -s $EXPSZ $FILEDISK1
log_must $TRUNCATE -s $EXPSZ $FILEDISK1
log_must zpool online -e $NESTEDPOOL $FILEDISK1
NEWSZ=$(zpool list -v | grep "$FILEDISK1" | awk '{print $2}')
nested_change_state_after_checkpoint
@@ -56,7 +56,7 @@ populate_test_pool
# have compression enabled.
#
log_must mkfile $BIGFILESIZE $FS0FILE
log_must randwritecomp $FS0FILE 1000
log_must $RANDWRITECOMP $FS0FILE 1000

#
# Add second disk
@@ -292,8 +292,8 @@ function fragment_before_checkpoint
populate_nested_pool
log_must mkfile -n $BIGFILESIZE $NESTEDFS0FILE
log_must mkfile -n $BIGFILESIZE $NESTEDFS1FILE
log_must randwritecomp $NESTEDFS0FILE $RANDOMWRITES
log_must randwritecomp $NESTEDFS1FILE $RANDOMWRITES
log_must $RANDWRITECOMP $NESTEDFS0FILE $RANDOMWRITES
log_must $RANDWRITECOMP $NESTEDFS1FILE $RANDOMWRITES

#
# Display fragmentation on test log
@@ -306,8 +306,8 @@ function fragment_after_checkpoint_and_verify
log_must zfs destroy $NESTEDFS1
log_must zfs create -o compression=lz4 -o recordsize=8k $NESTEDFS2
log_must mkfile -n $BIGFILESIZE $NESTEDFS2FILE
log_must randwritecomp $NESTEDFS0FILE $RANDOMWRITES
log_must randwritecomp $NESTEDFS2FILE $RANDOMWRITES
log_must $RANDWRITECOMP $NESTEDFS0FILE $RANDOMWRITES
log_must $RANDWRITECOMP $NESTEDFS2FILE $RANDOMWRITES

#
# Display fragmentation on test log
@@ -64,13 +64,15 @@ log_must $ZFS set quota=25M $fs
log_must $ZFS set reserv=10M $subfs
log_must $ZFS set refreserv=20M $subfs
mntpnt=$(get_prop mountpoint $fs)
log_mustnot $MKFILE 15M $mntpnt/$TESTFILE
log_mustnot dd if=/dev/random bs=1m count=15
# $MKFILE 15M $mntpnt/$TESTFILE

log_must $RM -f $mntpnt/$TESTFILE

log_must $ZFS set reserv=20M $subfs
log_must $ZFS set refreserv=10M $subfs
log_mustnot $MKFILE 15M $mntpnt/$TESTFILE
log_mustnot dd if=/dev/random bs=1m count=15
#log_mustnot $MKFILE 15M $mntpnt/$TESTFILE

log_pass "Reservations are enforced using the maximum of " \
"'reserv' and 'refreserv'"
@@ -99,7 +99,8 @@ function random_write # file write_size
{
typeset file=$1
typeset block_size=$2
typeset file_size=$(stat -c%s $file 2>/dev/null)
#typeset file_size=$(stat -c%s $file 2>/dev/null)
typeset file_size=$(stat -f %z $file 2>/dev/null)
typeset nblocks=$((file_size / block_size))

[[ -w $file ]] || return 1
@@ -41,7 +41,7 @@ FILE_CONTENTS="Leeloo Dallas mul-ti-pass."

echo $FILE_CONTENTS >$TESTDIR/$TESTFILE0
log_must [ "x$(cat $TESTDIR/$TESTFILE0)" = "x$FILE_CONTENTS" ]
log_must file_write -o create -f $TESTDIR/$TESTFILE1 -b $((2**20)) -c $((2**7))
log_must $FILE_WRITE -o create -f $TESTDIR/$TESTFILE1 -b $((2**20)) -c $((2**7))

log_must zpool remove $TESTPOOL $REMOVEDISK
log_must wait_for_removal $TESTPOOL
@@ -52,7 +52,7 @@ set -p

verify_runnable "both"

log_assert "Setting top level dataset reservation to 'none' allows more data "
log_assert "Setting top level dataset reservation to 'none' allows more data "\
"to be written to top level filesystem"

function cleanup
@@ -31,7 +31,9 @@ export BACKDIR=${TEST_BASE_DIR%%/}/backdir-rsend

export DISK1=$($ECHO $DISKS | $AWK '{print $1}')
export DISK2=$($ECHO $DISKS | $AWK '{print $2}')
export DISK3=$(echo $DISKS | awk '{print $3}')

export POOL=$TESTPOOL
export POOL2=$TESTPOOL1
export POOL3=$TESTPOOL3
export FS=$TESTFS
@@ -31,8 +31,6 @@
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/rsend/rsend.cfg

TRUNCATE=/usr/local/bin/gtruncate

#
# Set up test model which includes various datasets
#
@@ -118,7 +116,8 @@ function cleanup_pool
log_must $RM -rf $BACKDIR/*

if is_global_zone ; then
log_must $ZFS destroy -Rf $pool
log_must $ZFS destroy -R $pool
$ZFS destroy -Rf $pool
else
typeset list=$($ZFS list -H -r -t filesystem,snapshot,volume -o name $pool)
for ds in $list ; do
@@ -486,19 +485,23 @@ function churn_files
value=$((RANDOM % 5))
if [ $value -eq 0 -a $xattrs -ne 0 ]; then
attrname="testattr$((RANDOM % 3))"
attr -qr $attrname $file_name || \
#attr -qr $attrname $file_name || \
# log_fail "Failed to remove $attrname"
xattr -d $attrname $file_name || \
log_fail "Failed to remove $attrname"
attr -qs $attrname -V TestValue $file_name || \
#attr -qs $attrname -V TestValue $file_name || \
# log_fail "Failed to set $attrname"
xattr -w "$attrname" "TestValue" $file_name || \
log_fail "Failed to set $attrname"
elif [ $value -eq 1 ]; then
dd if=/dev/urandom of=$file_name \
bs=$file_size count=1 >/dev/null 2>&1 || \
log_fail "Failed to overwrite $file_name"
elif [ $value -eq 2 ]; then
truncate -s $file_size $file_name || \
$TRUNCATE -s $file_size $file_name || \
log_fail "Failed to truncate $file_name"
elif [ $value -eq 3 ]; then
truncate -s 0 $file_name || \
$TRUNCATE -s 0 $file_name || \
log_fail "Failed to truncate $file_name"
else
rm $file_name || \
@@ -516,7 +519,10 @@ function churn_files
if [ $xattrs -ne 0 ]; then
for j in {0..2}; do
attrname="testattr$j"
attr -qs $attrname -V TestValue \
#attr -qs $attrname -V TestValue \
# $file_name || log_fail \
# "Failed to set $attrname"
xattr -w "$attrname" "TestValue" \
$file_name || log_fail \
"Failed to set $attrname"
done
@@ -718,7 +724,7 @@ function verify_stream_size
{
typeset stream=$1
typeset ds=$2
typeset percent=${3:-90}
typeset percent=${3:-66}
typeset inc_src=$4

[[ -f $stream ]] || log_fail "No such file: $stream"
@@ -774,6 +780,6 @@ function rand_set_prop
# data is included in the checksum (no meta data, or xattrs).
function recursive_cksum
{
find $1 -type f -exec sha256sum {} \; | \
sort -k 2 | awk '{ print $1 }' | sha256sum
find $1 -type f -exec shasum -a 256 {} \; | \
sort -k 2 | awk '{ print $1 }' | shasum -a 256
}
@@ -60,18 +60,21 @@ log_must zfs snapshot $sendfs@snap1

# The stream sizes should match, since the second stream contains no new blocks
log_must eval "zfs send -D -c $sendfs@snap1 >$stream1"
typeset size0=$(stat -c %s $stream0)
typeset size1=$(stat -c %s $stream1)
#typeset size0=$(stat -c %s $stream0)
#typeset size1=$(stat -c %s $stream1)
typeset size0=$(stat -f %z $stream0)
typeset size1=$(stat -f %z $stream1)
within_percent $size0 $size1 90 || log_fail "$size0 and $size1"

# Finally, make sure the receive works correctly.
log_must eval "zfs send -D -c -i snap0 $sendfs@snap1 >$inc"
log_must eval "zfs recv -d $recvfs <$stream0"
log_must eval "zfs recv -d $recvfs <$inc"
log_must eval "zfs recv -dF $recvfs <$stream0"
log_must eval "zfs recv -dF $recvfs <$inc"
cmp_ds_cont $sendfs $recvfs

# The size of the incremental should be the same as the initial send.
typeset size2=$(stat -c %s $inc)
#typeset size2=$(stat -c %s $inc)
typeset size2=$(stat -f %z $inc)
within_percent $size0 $size2 90 || log_fail "$size0 and $size1"

log_pass "The -c and -D flags do not interfere with each other"
@@ -54,7 +54,7 @@ for recsize in "${recsize_prop_vals[@]}"; do
[[ $recsize -eq $((32 * 1024)) ]] && break

if is_linux; then
log_must truncate -s $recsize $dir/$recsize
log_must $TRUNCATE -s $recsize $dir/$recsize
log_must dd if=/dev/urandom of=$dir/$recsize \
seek=$((recsize - 8)) bs=1 count=8 conv=notrunc
else
@@ -49,8 +49,8 @@ typeset megs=8
log_must zfs create -V 256m -o compress=lz4 $vol

write_compressible $BACKDIR ${megs}m 2
md5_1=$(md5sum $data1 | awk '{print $1}')
md5_2=$(md5sum $data2 | awk '{print $1}')
md5_1=$($MD5SUM $data1 | awk '{print $1}')
md5_2=$($MD5SUM $data2 | awk '{print $1}')

log_must dd if=$data1 of=$voldev bs=1024k
log_must zfs snapshot $vol@snap
@@ -60,7 +60,7 @@ log_must eval "zfs recv -d $POOL2 <$BACKDIR/full"

verify_stream_size $BACKDIR/full $vol
verify_stream_size $BACKDIR/full $vol2
md5=$(dd if=$voldev2 bs=1024k count=$megs 2>/dev/null | md5sum | \
md5=$(dd if=$voldev2 bs=1024k count=$megs 2>/dev/null | $MD5SUM | \
awk '{print $1}')
[[ $md5 = $md5_1 ]] || log_fail "md5 mismatch: $md5 != $md5_1"

@@ -73,7 +73,7 @@ log_must eval "zfs recv -d $POOL2 <$BACKDIR/inc"

verify_stream_size $BACKDIR/inc $vol 90 $vol@snap
verify_stream_size $BACKDIR/inc $vol2 90 $vol2@snap
md5=$(dd skip=$megs if=$voldev2 bs=1024k count=$megs 2>/dev/null | md5sum | \
md5=$(dd skip=$megs if=$voldev2 bs=1024k count=$megs 2>/dev/null | $MD5SUM | \
awk '{print $1}')
[[ $md5 = $md5_2 ]] || log_fail "md5 mismatch: $md5 != $md5_2"

@@ -44,13 +44,13 @@ log_must eval "zfs send -c $sendfs@full >$BACKDIR/full"
log_must stream_has_features $BACKDIR/full lz4 compressed
cat $BACKDIR/full | zstreamdump -v > $BACKDIR/dump.out

lsize=$(awk '/^WRITE [^0]/ {lsize += $24} END {printf("%d", lsize)}' \
lsize=$(awk '/^WRITE [^0]/ {getline; lsize += $9} END {printf("%d", lsize)}' \
$BACKDIR/dump.out)
lsize_prop=$(get_prop logicalused $sendfs)
within_percent $lsize $lsize_prop 90 || log_fail \
"$lsize and $lsize_prop differed by too much"

csize=$(awk '/^WRITE [^0]/ {csize += $27} END {printf("%d", csize)}' \
csize=$(awk '/^WRITE [^0]/ {getline; csize += $12} END {printf("%d", csize)}' \
$BACKDIR/dump.out)
csize_prop=$(get_prop used $sendfs)
within_percent $csize $csize_prop 90 || log_fail \
@@ -86,8 +86,8 @@ log_must block_device_wait

log_must mount $recvdev $recvmnt

md5_1=$(cat $mntpnt/* | md5sum | awk '{print $1}')
md5_2=$(cat $recvmnt/* | md5sum | awk '{print $1}')
md5_1=$(cat $mntpnt/* | $MD5SUM | awk '{print $1}')
md5_2=$(cat $recvmnt/* | $MD5SUM | awk '{print $1}')
[[ "$md5_1" == "$md5_2" ]] || log_fail "md5 mismatch: $md5_1 != $md5_2"

log_pass "zfs can receive raw, recursive, and deduplicated send streams"
@@ -88,16 +88,17 @@ done

log_must mkdir -p /$TESTPOOL/$TESTFS2/xattrondir
log_must zfs set xattr=on $TESTPOOL/$TESTFS2
log_must xattrtest -f 10 -x 3 -s 32768 -r -k -p /$TESTPOOL/$TESTFS2/xattrondir
log_must $XATTRTEST -f 10 -x 3 -s 32768 -r -k -p /$TESTPOOL/$TESTFS2/xattrondir
log_must mkdir -p /$TESTPOOL/$TESTFS2/xattrsadir
log_must zfs set xattr=sa $TESTPOOL/$TESTFS2
log_must xattrtest -f 10 -x 3 -s 32768 -r -k -p /$TESTPOOL/$TESTFS2/xattrsadir
log_must $XATTRTEST -f 10 -x 3 -s 32768 -r -k -p /$TESTPOOL/$TESTFS2/xattrsadir

# ZoL issue #7432
log_must zfs set compression=on xattr=sa $TESTPOOL/$TESTFS2
log_must touch /$TESTPOOL/$TESTFS2/attrs
log_must eval "python -c 'print \"a\" * 4096' | \
attr -s bigval /$TESTPOOL/$TESTFS2/attrs"
#log_must eval "python -c 'print \"a\" * 4096' | \
# attr -s bigval /$TESTPOOL/$TESTFS2/attrs"
log_must eval "xattr -w bigval "$(python -c 'print "a" * 4096')" /$TESTPOOL/$TESTFS2/attrs"
log_must zfs set compression=off xattr=on $TESTPOOL/$TESTFS2

log_must zfs snapshot $TESTPOOL/$TESTFS2@snap1
@@ -123,7 +124,7 @@ actual_cksum=$(recursive_cksum /$TESTPOOL/recv)
[[ "$expected_cksum" != "$actual_cksum" ]] && \
log_fail "Recursive checksums differ ($expected_cksum != $actual_cksum)"

log_must xattrtest -f 10 -o3 -y -p /$TESTPOOL/recv/xattrondir
log_must xattrtest -f 10 -o3 -y -p /$TESTPOOL/recv/xattrsadir
log_must $XATTRTEST -f 10 -o3 -y -p /$TESTPOOL/recv/xattrondir
log_must $XATTRTEST -f 10 -o3 -y -p /$TESTPOOL/recv/xattrsadir

log_pass "Verified 'zfs send -w' works with many different file layouts"
@@ -46,9 +46,9 @@ verify_runnable "both"

function cleanup
{
destroy_dataset $TESTPOOL/recv "-r"
destroy_dataset $TESTPOOL/crypt "-r"
destroy_dataset $TESTPOOL/ds "-r"
destroy_dataset "-r" $TESTPOOL/recv
destroy_dataset "-r" $TESTPOOL/crypt
destroy_dataset "-r" $TESTPOOL/ds
[[ -f $sendfile ]] && log_must rm $sendfile
[[ -f $keyfile ]] && log_must rm $keyfile
}
@@ -75,7 +75,7 @@ log_must zfs create -o keyformat=passphrase -o keylocation=file://$keyfile \

log_must mkfile 1M /$TESTPOOL/ds/$TESTFILE0
log_must cp /$TESTPOOL/ds/$TESTFILE0 /$TESTPOOL/crypt/$TESTFILE0
typeset cksum=$(md5sum /$TESTPOOL/ds/$TESTFILE0 | awk '{ print $1 }')
typeset cksum=$($MD5SUM /$TESTPOOL/ds/$TESTFILE0 | awk '{ print $1 }')

log_must zfs snap -r $snap
log_must zfs snap -r $esnap
@@ -127,7 +127,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$ds"
log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
log_must test "$(get_prop 'keylocation' $ds)" == "file://$keyfile"
log_must test "$(get_prop 'mounted' $ds)" == "yes"
recv_cksum=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
recv_cksum=$($MD5SUM /$ds/$TESTFILE0 | awk '{ print $1 }')
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds

@@ -143,7 +143,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$ds"
log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
log_must test "$(get_prop 'keylocation' $ds)" == "file://$keyfile"
log_must test "$(get_prop 'mounted' $ds)" == "yes"
recv_cksum=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
recv_cksum=$($MD5SUM /$ds/$TESTFILE0 | awk '{ print $1 }')
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds

@@ -161,7 +161,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$ds"
log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
log_must test "$(get_prop 'keylocation' $ds)" == "file://$keyfile"
log_must test "$(get_prop 'mounted' $ds)" == "yes"
recv_cksum=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
recv_cksum=$($MD5SUM /$ds/$TESTFILE0 | awk '{ print $1 }')
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds

@@ -175,7 +175,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$TESTPOOL/crypt"
log_must test "$(get_prop 'encryption' $ds)" == "aes-256-ccm"
log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
log_must test "$(get_prop 'mounted' $ds)" == "yes"
recv_cksum=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
recv_cksum=$($MD5SUM /$ds/$TESTFILE0 | awk '{ print $1 }')
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds

@@ -189,7 +189,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$TESTPOOL/crypt"
log_must test "$(get_prop 'encryption' $ds)" == "aes-256-ccm"
log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
log_must test "$(get_prop 'mounted' $ds)" == "yes"
recv_cksum=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
recv_cksum=$($MD5SUM /$ds/$TESTFILE0 | awk '{ print $1 }')
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds

@@ -52,8 +52,8 @@ log_onexit cleanup

function recursive_cksum
{
find $1 -type f -exec sha256sum {} \; | \
sort -k 2 | awk '{ print $1 }' | sha256sum
find $1 -type f -exec shasum -a 256 {} \; | \
sort -k 2 | awk '{ print $1 }' | shasum -a 256
}

log_assert "Verify 'zfs send -w' works with many different file layouts"
@@ -88,17 +88,17 @@ log_must zfs snapshot $TESTPOOL/$TESTFS2@snap1
# fourth tests an object that is truncated from a single block
# to a smaller single block.
#
log_must truncate -s 131072 /$TESTPOOL/$TESTFS2/truncated
log_must truncate -s 393216 /$TESTPOOL/$TESTFS2/truncated2
log_must $TRUNCATE -s 131072 /$TESTPOOL/$TESTFS2/truncated
log_must $TRUNCATE -s 393216 /$TESTPOOL/$TESTFS2/truncated2
log_must rm -f /$TESTPOOL/$TESTFS2/truncated3
log_must rm -f /$TESTPOOL/$TESTFS2/truncated4
log_must zpool sync $TESTPOOL
log_must zfs umount $TESTPOOL/$TESTFS2
log_must zfs mount $TESTPOOL/$TESTFS2
log_must dd if=/dev/urandom of=/$TESTPOOL/$TESTFS2/truncated3 \
bs=128k count=3 iflag=fullblock
bs=128k count=3
log_must dd if=/dev/urandom of=/$TESTPOOL/$TESTFS2/truncated4 \
bs=512 count=1 iflag=fullblock
bs=512 count=1

log_must zfs snapshot $TESTPOOL/$TESTFS2@snap2
expected_cksum=$(recursive_cksum /$TESTPOOL/$TESTFS2)
@@ -74,8 +74,8 @@ log_must rm $f2
log_must zfs snap $POOL/$sendds@A
log_must rm $f3
log_must zfs snap $POOL/$sendds@B
log_must eval "zfs send $POOL/$sendds@A | zfs recv $POOL/$recvds"
log_must eval "zfs send $POOL/$sendds@A | zfs recv -F $POOL/$recvds"
log_must eval "zfs send -i $POOL/$sendds@A $POOL/$sendds@B |" \
"zfs recv $POOL/$recvds"
"zfs recv -F $POOL/$recvds"
log_mustnot zdb $POOL/$recvds@B $o3
log_pass "Verify FREEOBJECTS record frees sequential objects"
@@ -119,7 +119,7 @@ log_must zfs create $recv_root
log_must zfs set mountpoint=$TESTDIR $TESTPOOL/$TESTFS1
log_must zfs set mountpoint=$TESTDIR1 $recv_root

file_write -o create -f $init_data -b $BLOCK_SIZE -c $WRITE_COUNT
$FILE_WRITE -o create -f $init_data -b $BLOCK_SIZE -c $WRITE_COUNT

log_must zfs snapshot $init_snap
log_must zfs hold hold1-1 $init_snap
@@ -139,7 +139,7 @@ compare_cksum $init_data $recv_data

log_note "Verify 'zfs send -i' can create incremental send stream."

file_write -o create -f $inc_data -b $BLOCK_SIZE -c $WRITE_COUNT -d 0
$FILE_WRITE -o create -f $inc_data -b $BLOCK_SIZE -c $WRITE_COUNT -d 0

log_must zfs snapshot $inc_snap
log_must zfs hold hold2-1 $inc_snap
@@ -156,7 +156,7 @@ log_must check_hold $recv_inc_snap hold2-1
compare_cksum $inc_data $recv_inc_data

log_note "Verify send -h works when there are no holds."
file_write -o create -f $inc_data2 -b $BLOCK_SIZE -c $WRITE_COUNT -d 0
$FILE_WRITE -o create -f $inc_data2 -b $BLOCK_SIZE -c $WRITE_COUNT -d 0
log_must zfs snapshot $inc_snap2
log_must eval "zfs send -h -i $inc_snap $inc_snap2 > $inc_bkup"
log_must zfs recv -F $recv_inc_snap2 <$inc_bkup
@@ -77,11 +77,11 @@ log_must set_tunable64 send_holes_without_birth_time 0
# Incremental send truncating the file and adding new data.
log_must zfs create -o recordsize=4k $sendfs

log_must truncate -s 1G /$sendfs/file1
log_must $TRUNCATE -s 1G /$sendfs/file1
log_must dd if=/dev/urandom of=/$sendfs/file1 bs=4k count=11264 seek=1152
log_must zfs snapshot $sendfs@snap1

log_must truncate -s 4194304 /$sendfs/file1
log_must $TRUNCATE -s 4194304 /$sendfs/file1
log_must dd if=/dev/urandom of=/$sendfs/file1 bs=4k count=152 seek=384 \
conv=notrunc
log_must dd if=/dev/urandom of=/$sendfs/file1 bs=4k count=10 seek=1408 \
@@ -109,11 +109,11 @@ log_must cleanup_pool $recvpool
# Incremental send truncating the file and adding new data.
log_must zfs create -o recordsize=512 $sendfs

log_must truncate -s 300M /$sendfs/file1
log_must $TRUNCATE -s 300M /$sendfs/file1
log_must dd if=/dev/urandom of=/$sendfs/file1 bs=512 count=128k conv=notrunc
log_must zfs snapshot $sendfs@snap1

log_must truncate -s 10M /$sendfs/file1
log_must $TRUNCATE -s 10M /$sendfs/file1
log_must dd if=/dev/urandom of=/$sendfs/file1 bs=512 count=1 seek=96k \
conv=notrunc
log_must zfs snapshot $sendfs@snap2
@@ -93,7 +93,8 @@ log_must zfs snapshot $POOL/fs@c
# 4. Create an empty file and add xattrs to it to exercise reclaiming a
# dnode that requires more than 1 slot for its bonus buffer (Zol #7433)
log_must zfs set compression=on xattr=sa $POOL/fs
log_must eval "python -c 'print \"a\" * 512' | attr -s bigval /$POOL/fs/attrs"
#log_must eval "python -c 'print \"a\" * 512' | attr -s bigval /$POOL/fs/attrs"
log_must eval "xattr -wx bigval $(python -c 'print "a" * 512') /$POOL/fs/attrs"
log_must zfs snapshot $POOL/fs@d

# 5. Generate initial and incremental streams
@@ -103,9 +104,9 @@ log_must eval "zfs send -i $POOL/fs@b $POOL/fs@c > $BACKDIR/fs-dn-2k"
log_must eval "zfs send -i $POOL/fs@c $POOL/fs@d > $BACKDIR/fs-attr"

# 6. Verify initial and incremental streams can be received
log_must eval "zfs recv $POOL/newfs < $BACKDIR/fs-dn-1k"
log_must eval "zfs recv $POOL/newfs < $BACKDIR/fs-dn-legacy"
log_must eval "zfs recv $POOL/newfs < $BACKDIR/fs-dn-2k"
log_must eval "zfs recv $POOL/newfs < $BACKDIR/fs-attr"
log_must eval "zfs recv -F $POOL/newfs < $BACKDIR/fs-dn-1k"
log_must eval "zfs recv -F $POOL/newfs < $BACKDIR/fs-dn-legacy"
log_must eval "zfs recv -F $POOL/newfs < $BACKDIR/fs-dn-2k"
log_must eval "zfs recv -F $POOL/newfs < $BACKDIR/fs-attr"

log_pass "Verify incremental receive handles objects with changed dnode size"
@@ -47,8 +47,8 @@ fi
sysctl -w kstat.zfs.darwin.tunable.zvol_inhibit_dev=1

if is_global_zone ; then
log_must $ZPOOL create $POOL $DISK1
log_must $ZPOOL create $POOL2 $DISK2
log_must $ZPOOL create -f $POOL $DISK1
log_must $ZPOOL create -f $POOL2 $DISK2
fi
log_must $MKDIR -p $BACKDIR $TESTDIR

@@ -54,8 +54,9 @@ for PCT in 0 1 2 4 8 16 32 64 128 256 512 1024; do
log_must zpool create $TESTPOOL $VDEV log $SDEV

for i in {1..10}; do
log_must fio --rw write --sync 1 --directory "/$TESTPOOL" \
--bs 8K --size 8K --name slog-test
#log_must fio --rw write --sync 1 --directory "/$TESTPOOL" \
# --bs 8K --size 8K --name slog-test
log_must $FILE_WRITE -o create -f "/$TESTPOOL/slog-test" -b 8192 -c 600 -d 0
done &

for i in {1..10}; do
@@ -51,6 +51,7 @@ verify_runnable "both"

function cleanup
{
$ZFS umount $SNAPFS
destroy_dataset $SNAPFS

[[ -e $TESTDIR ]] && \
@@ -76,8 +77,9 @@ while [[ $i -le $COUNT ]]; do
done

log_must $ZFS snapshot $SNAPFS
log_must $ZFS mount $SNAPFS

FILE_COUNT=`$LS -Al $SNAPDIR | $GREP -v "total" | wc -l`
FILE_COUNT=`$LS -Al $SNAPDIR | egrep -v $IGNORE | wc -l`
if [[ $FILE_COUNT -ne $COUNT ]]; then
$LS -Al $SNAPDIR
log_fail "AFTER: $SNAPFS contains $FILE_COUNT files(s)."
@@ -92,22 +94,27 @@ while [[ $i -le $COUNT ]]; do
(( i = i + 1 ))
done

$ZFS umount $SNAPFS
#
# Now rollback to latest snapshot
#
log_must $ZFS rollback $SNAPFS

FILE_COUNT=`$LS -Al $TESTDIR/after* 2> /dev/null | $GREP -v "total" | wc -l`
$ZFS mount $SNAPFS

FILE_COUNT=`$LS -Al $TESTDIR/after* 2> /dev/null | egrep -v $IGNORE | wc -l`
if [[ $FILE_COUNT -ne 0 ]]; then
$LS -Al $TESTDIR
log_fail "$TESTDIR contains $FILE_COUNT after* files(s)."
fi

FILE_COUNT=`$LS -Al $TESTDIR/before* 2> /dev/null \
| $GREP -v "total" | wc -l`
| egrep -v $IGNORE | wc -l`
if [[ $FILE_COUNT -ne $COUNT ]]; then
$LS -Al $TESTDIR
log_fail "$TESTDIR contains $FILE_COUNT before* files(s)."
fi

$ZFS umount $SNAPFS

log_pass "The rollback operation succeeded."
@@ -51,6 +51,7 @@ verify_runnable "both"

function cleanup
{
$ZFS umount $SNAPFS
destroy_dataset $SNAPFS.1
destroy_dataset $SNAPFS

@@ -78,7 +79,9 @@ done

log_must $ZFS snapshot $SNAPFS

FILE_COUNT=`$LS -Al $SNAPDIR | $GREP -v "total" | wc -l`
$ZFS mount $SNAPFS

FILE_COUNT=`$LS -Al $SNAPDIR | egrep -v $IGNORE | wc -l`
if [[ $FILE_COUNT -ne $COUNT ]]; then
$LS -Al $SNAPDIR
log_fail "AFTER: $SNAPFS contains $FILE_COUNT files(s)."
@@ -113,16 +116,18 @@ done
log_must $ZFS rollback $SNAPFS.1

FILE_COUNT=`$LS -Al $TESTDIR/aftersecond* 2> /dev/null \
| $GREP -v "total" | wc -l`
| egrep -v $IGNORE | wc -l`
if [[ $FILE_COUNT -ne 0 ]]; then
$LS -Al $TESTDIR
log_fail "$TESTDIR contains $FILE_COUNT aftersecond* files(s)."
fi

FILE_COUNT=`$LS -Al $TESTDIR/original* $TESTDIR/afterfirst*| $GREP -v "total" | wc -l`
FILE_COUNT=`$LS -Al $TESTDIR/original* $TESTDIR/afterfirst*| egrep -v $IGNORE | wc -l`
if [[ $FILE_COUNT -ne 20 ]]; then
$LS -Al $TESTDIR
log_fail "$TESTDIR contains $FILE_COUNT original* files(s)."
fi

$ZFS umount $SNAPFS

log_pass "The rollback to the latest snapshot succeeded."
@@ -51,3 +51,4 @@ export LIMIT=524288 # tolerance measured in bytes, 512K
export FSQUOTA=500m
export FILESIZE=400m
export FILESIZE1=200m
export IGNORE="total|.Trashes|.fseventsd|.Spotlight"
@@ -70,7 +70,7 @@ log_must $FILE_WRITE -o create -f $TESTDIR/$TESTFILE -b $BLOCKSZ \
-c $NUM_WRITES -d $DATA

log_note "Sum the file, save for later comparison..."
FILE_SUM=`$SUM -r $TESTDIR/$TESTFILE | $AWK '{ print $1 }'`
FILE_SUM=`$MD5SUM $TESTDIR/$TESTFILE | $AWK '{ print $1 }'`
log_note "FILE_SUM = $FILE_SUM"

log_note "Create a snapshot and mount it..."
@@ -80,7 +80,7 @@ log_note "Append to the original file..."
log_must $FILE_WRITE -o append -f $TESTDIR/$TESTFILE -b $BLOCKSZ \
-c $NUM_WRITES -d $DATA

SNAP_FILE_SUM=`$SUM -r $SNAPDIR/$TESTFILE | $AWK '{ print $1 }'`
SNAP_FILE_SUM=`$MD5SUM $SNAPDIR/$TESTFILE | $AWK '{ print $1 }'`
if [[ $SNAP_FILE_SUM -ne $FILE_SUM ]]; then
log_fail "Sums do not match, aborting!! ($SNAP_FILE_SUM != $FILE_SUM)"
fi
@@ -55,6 +55,7 @@ function cleanup
cd $CWD || log_fail "Could not cd $CWD"
fi

$ZFS umount $SNAPFS
destroy_dataset $SNAPFS

if [[ -e $SNAPDIR ]]; then
@@ -104,6 +105,8 @@ log_must $ZFS snapshot $SNAPFS
log_note "Remove all of the original files..."
log_must $RM -f $TESTDIR/file* > /dev/null 2>&1

$ZFS mount $SNAPFS

log_note "Create tarball of snapshot..."
CWD=$PWD
cd $SNAPDIR || log_fail "Could not cd $SNAPDIR"
@@ -128,4 +131,6 @@ if [[ $? -ne 1 ]]; then
log_fail "Directory structures differ."
fi

$ZFS umount $SNAPFS

log_pass "Directory structures match."
@@ -69,7 +69,7 @@ log_must $FILE_WRITE -o create -f $TESTDIR1/$TESTFILE -b $BLOCKSZ \
-c $NUM_WRITES -d $DATA

log_note "Sum the file, save for later comparison..."
FILE_SUM=`$SUM -r $TESTDIR1/$TESTFILE | $AWK '{ print $1 }'`
FILE_SUM=`$MD5SUM $TESTDIR1/$TESTFILE | $AWK '{ print $1 }'`
log_note "FILE_SUM = $FILE_SUM"

log_note "Create a snapshot and mount it..."
@@ -79,7 +79,7 @@ log_note "Append to the original file..."
log_must $FILE_WRITE -o append -f $TESTDIR1/$TESTFILE -b $BLOCKSZ \
-c $NUM_WRITES -d $DATA

SNAP_FILE_SUM=`$SUM -r $SNAPDIR1/$TESTFILE | $AWK '{ print $1 }'`
SNAP_FILE_SUM=`$MD5SUM $SNAPDIR1/$TESTFILE | $AWK '{ print $1 }'`
if [[ $SNAP_FILE_SUM -ne $FILE_SUM ]]; then
log_fail "Sums do not match, aborting!! ($SNAP_FILE_SUM != $FILE_SUM)"
fi
@@ -54,6 +54,7 @@ function cleanup
cd $CWD || log_fail "Could not cd $CWD"
fi

$ZFS umount $SNAPCTR
destroy_dataset $SNAPCTR

if [[ -e $SNAPDIR1 ]]; then
@@ -102,6 +103,8 @@ log_must $ZFS snapshot $SNAPCTR
log_note "Remove all of the original files..."
log_must $RM -f $TESTDIR1/file* > /dev/null 2>&1

$ZFS mount $SNAPCTR

log_note "Create tarball of snapshot..."
CWD=$PWD
cd $SNAPDIR1 || log_fail "Could not cd $SNAPDIR1"
@@ -126,4 +129,6 @@ if [[ $? -ne 1 ]]; then
log_fail "Directory structures differ."
fi

$ZFS umount $SNAPCTR

log_pass "Directory structures match."
@@ -51,6 +51,7 @@ verify_runnable "both"

function cleanup
{
$ZFS umount $SNAPFS
destroy_dataset -r $SNAPPOOL

[[ -e $TESTDIR ]] && \
@@ -76,7 +77,9 @@ done

log_must $ZFS snapshot -r $SNAPPOOL

FILE_COUNT=`$LS -Al $SNAPDIR | $GREP -v "total" | wc -l`
log_must $ZFS mount $SNAPFS

FILE_COUNT=`$LS -Al $SNAPDIR | egrep -v $IGNORE | wc -l`
if (( FILE_COUNT != COUNT )); then
$LS -Al $SNAPDIR
log_fail "AFTER: $SNAPFS contains $FILE_COUNT files(s)."
@@ -96,17 +99,19 @@ done
#
log_must $ZFS rollback $SNAPFS

FILE_COUNT=`$LS -Al $TESTDIR/after* 2> /dev/null | $GREP -v "total" | wc -l`
FILE_COUNT=`$LS -Al $TESTDIR/after* 2> /dev/null | egrep -v $IGNORE | wc -l`
if (( FILE_COUNT != 0 )); then
$LS -Al $TESTDIR
log_fail "$TESTDIR contains $FILE_COUNT after* files(s)."
fi

FILE_COUNT=`$LS -Al $TESTDIR/before* 2> /dev/null \
| $GREP -v "total" | wc -l`
| egrep -v $IGNORE | wc -l`
if (( FILE_COUNT != $COUNT )); then
$LS -Al $TESTDIR
log_fail "$TESTDIR contains $FILE_COUNT before* files(s)."
fi

$ZFS umount $SNAPFS

log_pass "Rollback with child snapshot works as expected."
@@ -48,6 +48,7 @@ verify_runnable "both"

function cleanup
{
$ZFS umount $snapctrfs
destroy_dataset -r $ctrfs
destroy_dataset -r $snappool

@@ -88,9 +89,13 @@ if ! datasetexists $ctrfs || ! snapexists $snapctrfs; then
log_fail "zfs send/receive fails with snapshot $snapfs."
fi

$ZFS mount $snapctrfs

for dir in $fsdir $snapdir; do
FILE_COUNT=`$LS -Al $dir | $GREP -v "total" | wc -l`
FILE_COUNT=`$LS -Al $dir | egrep -v $IGNORE | wc -l`
(( FILE_COUNT != COUNT )) && log_fail "Got $FILE_COUNT expected $COUNT"
done

$ZFS umount $snapctrfs

log_pass "'zfs send/receive' works as expected with snapshots from 'snapshot -r'"
@@ -80,14 +80,14 @@ for type in "" "mirror" "raidz2"; do
VDEVS="$TRIM_VDEV1 $TRIM_VDEV2 $TRIM_VDEV3"
fi

log_must truncate -s $((4 * MINVDEVSIZE)) $VDEVS
log_must $TRUNCATE -s $((4 * MINVDEVSIZE)) $VDEVS
log_must zpool create -f $TESTPOOL $VDEVS
log_must zpool set autotrim=on $TESTPOOL
typeset availspace=$(get_prop available $TESTPOOL)
typeset fill_mb=$(( floor(availspace * 0.90 / 1024 / 1024) ))

# Fill the pool, verify the vdevs are no longer sparse.
file_write -o create -f /$TESTPOOL/file -b 1048576 -c $fill_mb -d R
$FILE_WRITE -o create -f /$TESTPOOL/file -b 1048576 -c $fill_mb -d R
verify_vdevs "-gt" "$VDEV_MAX_MB" $VDEVS

# Remove the file, wait for trim, verify the vdevs are now sparse.
@@ -61,7 +61,7 @@ typeset trim_txg_batch=$(get_tunable zfs_trim_txg_batch)
log_must set_tunable64 zfs_trim_txg_batch 8

for type in "" "mirror" "raidz" "raidz2" "raidz3"; do
log_must truncate -s 1G $TRIM_VDEVS
log_must $TRUNCATE -s 1G $TRIM_VDEVS

log_must zpool create -f $TESTPOOL $type $TRIM_VDEVS
log_must zpool set autotrim=on $TESTPOOL
@@ -62,7 +62,7 @@ typeset trim_txg_batch=$(get_tunable zfs_trim_txg_batch)
log_must set_tunable64 zfs_trim_txg_batch 8

for type in "" "mirror" "raidz" "raidz2" "raidz3"; do
log_must truncate -s 1G $TRIM_VDEVS
log_must $TRUNCATE -s 1G $TRIM_VDEVS

log_must zpool create -f $TESTPOOL $type $TRIM_VDEVS
log_must zpool set autotrim=on $TESTPOOL
@@ -80,14 +80,14 @@ for type in "" "mirror" "raidz2"; do
VDEVS="$TRIM_VDEV1 $TRIM_VDEV2 $TRIM_VDEV3"
fi

log_must truncate -s $((4 * MINVDEVSIZE)) $VDEVS
log_must $TRUNCATE -s $((4 * MINVDEVSIZE)) $VDEVS
log_must zpool create -f $TESTPOOL $type $VDEVS

typeset availspace=$(get_prop available $TESTPOOL)
typeset fill_mb=$(( floor(availspace * 0.90 / 1024 / 1024) ))

# Fill the pool, verify the vdevs are no longer sparse.
file_write -o create -f /$TESTPOOL/file -b 1048576 -c $fill_mb -d R
$FILE_WRITE -o create -f /$TESTPOOL/file -b 1048576 -c $fill_mb -d R
verify_vdevs "-gt" "$VDEV_MAX_MB" $VDEVS

# Remove the file, issue trim, verify the vdevs are now sparse.
@@ -51,18 +51,18 @@ log_onexit cleanup_upgrade

log_must zpool create -d -m $TESTDIR $TESTPOOL $TMPDEV

log_must mkfiles $TESTDIR/tf $((RANDOM % 100 + 1))
log_must $MKFILES $TESTDIR/tf $((RANDOM % 100 + 1))
log_must zfs create $TESTPOOL/fs1
log_must mkfiles $TESTDIR/fs1/tf $((RANDOM % 100 + 1))
log_must $MKFILES $TESTDIR/fs1/tf $((RANDOM % 100 + 1))
log_must zfs umount $TESTPOOL/fs1

log_must zfs create $TESTPOOL/fs2
log_must mkdir $TESTDIR/fs2/dir
log_must mkfiles $TESTDIR/fs2/tf $((RANDOM % 100 + 1))
log_must $MKFILES $TESTDIR/fs2/tf $((RANDOM % 100 + 1))

log_must zfs create $TESTPOOL/fs3
log_must mkdir $TESTDIR/fs3/dir
log_must mkfiles $TESTDIR/fs3/tf $((RANDOM % 100 + 1))
log_must $MKFILES $TESTDIR/fs3/tf $((RANDOM % 100 + 1))

# Make sure project quota is disabled
zfs projectspace -o used $TESTPOOL | grep -q "USED" &&
@@ -48,11 +48,11 @@ log_onexit cleanup_upgrade

log_must zpool create -d -m $TESTDIR $TESTPOOL $TMPDEV

log_must mkfiles $TESTDIR/tf $((RANDOM % 1000 + 1))
log_must $MKFILES $TESTDIR/tf $((RANDOM % 1000 + 1))
log_must zfs create $TESTPOOL/fs1
log_must mkfiles $TESTDIR/fs1/tf $((RANDOM % 1000 + 1))
log_must $MKFILES $TESTDIR/fs1/tf $((RANDOM % 1000 + 1))
log_must zfs create $TESTPOOL/fs2
log_must mkfiles $TESTDIR/fs2/tf $((RANDOM % 1000 + 1))
log_must $MKFILES $TESTDIR/fs2/tf $((RANDOM % 1000 + 1))
log_must zfs umount $TESTPOOL/fs2

# Make sure userobj accounting is disabled
@@ -77,8 +77,8 @@ log_must zfs set xattr=sa $QFS

((user1_cnt = RANDOM % 100 + 1))
((user2_cnt = RANDOM % 100 + 1))
log_must user_run $QUSER1 mkfiles ${QFILE}_1 $user1_cnt
log_must user_run $QUSER2 mkfiles ${QFILE}_2 $user2_cnt
log_must user_run $QUSER1 $MKFILES ${QFILE}_1 $user1_cnt
log_must user_run $QUSER2 $MKFILES ${QFILE}_2 $user2_cnt
((grp_cnt = user1_cnt + user2_cnt))
sync_pool

@@ -61,15 +61,15 @@ log_must zfs set xattr=sa $QFS

log_note "Check the userobjquota@$QUSER1"
log_must zfs set userobjquota@$QUSER1=100 $QFS
log_must user_run $QUSER1 mkfiles ${QFILE}_1 100
log_must user_run $QUSER1 $MKFILES ${QFILE}_1 100
sync_pool
log_mustnot user_run $QUSER1 mkfile 1 $OFILE
cleanup_quota

log_note "Check the groupobjquota@$QGROUP"
log_must zfs set groupobjquota@$QGROUP=200 $QFS
mkmount_writable $QFS
log_must user_run $QUSER1 mkfiles ${QFILE}_2 100
log_must user_run $QUSER1 $MKFILES ${QFILE}_2 100
sync_pool
log_mustnot user_run $QUSER2 mkfile 1 $OFILE

@@ -79,8 +79,8 @@ log_must zfs set xattr=sa $QFS
((user1_cnt = RANDOM % 100 + 1))
((user2_cnt = RANDOM % 100 + 1))

log_must user_run $QUSER1 mkfiles ${QFILE}_1 $user1_cnt
log_must user_run $QUSER2 mkfiles ${QFILE}_2 $user2_cnt
log_must user_run $QUSER1 $MKFILES ${QFILE}_1 $user1_cnt
log_must user_run $QUSER2 $MKFILES ${QFILE}_2 $user2_cnt
sync_pool

typeset snapfs=$QFS@snap
@@ -32,12 +32,12 @@
# if we're running NIS, turn it off until we clean up
# (it can cause useradd to take a long time, hitting our TIMEOUT)
USES_NIS=FALSE
$SVCS svc:/network/nis/client:default | $GREP online > /dev/null
if [ $? -eq 0 ]
then
$SVCADM disable -t svc:/network/nis/client:default
USES_NIS=true
fi
#$SVCS svc:/network/nis/client:default | $GREP online > /dev/null
#if [ $? -eq 0 ]
#then
# $SVCADM disable -t svc:/network/nis/client:default
# USES_NIS=true
#fi

# Make sure we use a brand new user for this
ZFS_USER=zxtr
@@ -53,7 +53,7 @@ streamfile_zvol="$TEST_BASE_DIR/streamfile_zvol.$$"

# 1. Create filesystems and ZVOLs
# NOTE: set "mountpoint=none" just to speed up the test process
log_must truncate -s $MINVDEVSIZE "$vdevfile"
log_must $TRUNCATE -s $MINVDEVSIZE "$vdevfile"
log_must zpool create -O mountpoint=none "$poolname" "$vdevfile"
log_must zfs create "$poolname/sendfs"
log_must zfs create -V 1M -s "$poolname/sendvol"