@@ -5,9 +5,11 @@ fs_setup()
55 MOUNTOPTS="${3:-}"
6677export PATH=/sbin:/usr/sbin:$PATH
8-if ! which mkfs.$FSTYPE; then
9-echo "Cannot find mkfs.$FSTYPE"
10-exit 1
8+if [ "$FSTYPE" != "zfs" ]; then
9+if ! which mkfs.$FSTYPE; then
10+echo "Cannot find mkfs.$FSTYPE"
11+exit 1
12+fi
1113fi
12141315 mkdir -p /tmp /mnt/tmp
@@ -33,7 +35,7 @@ fs_setup()
3335 BLOCKS_KB=2
3436 BLOCKS_MB=$((1024*2))
3537# Total looback dev size to allocate
36- TOTSZ=$((100 * $BLOCKS_MB))
38+ TOTSZ=$((200 * $BLOCKS_MB))
3739# Amount of loopback device to map before bad range. Move the end of this
3840# around to make sure the error region doesn't make fs creation fail.
3941 STARTSZ=$(( 58 * $BLOCKS_MB ))
@@ -74,7 +76,11 @@ __END__
74767577 dmsetup mknodes errdev1
767877- sudo mkfs.$FSTYPE $MKFSOPTS /dev/mapper/errdev1
79+if [ "$FSTYPE" == "zfs" ]; then
80+ sudo zpool create pool0 /dev/mapper/errdev1
81+else
82+ sudo mkfs.$FSTYPE $MKFSOPTS /dev/mapper/errdev1
83+fi
78847985# make a FS on it and mount it
8086 mkdir -p /mnt/tmp
@@ -83,9 +89,14 @@ __END__
8389else
8490 OPTSSTR="-o $MOUNTOPTS"
8591fi
86- mount /dev/mapper/errdev1 /mnt/tmp $OPTSSTR
92+if [ "$FSTYPE" == "zfs" ]; then
93+ zfs set mountpoint=/mnt/tmp pool0
94+trap "{ trap EXIT; zpool destroy pool0; dmsetup remove errdev1; losetup -d ${LOOPDEV}; }" EXIT
95+else
96+ mount /dev/mapper/errdev1 /mnt/tmp $OPTSSTR
97+trap "{ trap EXIT; umount /mnt/tmp; dmsetup remove errdev1; losetup -d ${LOOPDEV}; }" EXIT
98+fi
879988-trap "{ trap EXIT; umount /mnt/tmp; dmsetup remove errdev1; losetup -d ${LOOPDEV}; }" EXIT
89100}
9010191102fs_cleanup()