3 # 1 scsi_debug device for fault injection and 3 loopback devices
4 # on top of which is layered raidz3.
12 FILES="/tmp/zpool-vdev0 \
21 test `${LSMOD} | grep -c scsi_debug` -gt 0 && \
22 (echo 0 >/sys/module/scsi_debug/parameters/every_nth && \
23 ${RMMOD} scsi_debug || exit 1)
26 msg "${LDMOD} scsi_debug dev_size_mb=${SDSIZE} " \
27 "add_host=${SDHOSTS} num_tgts=${SDTGTS} " \
30 dev_size_mb=${SDSIZE} \
33 max_luns=${SDLUNS} || \
34 die "Error $? creating scsi_debug devices"
37 SDDEVICE=`${LSSCSI} | ${AWK} '/scsi_debug/ { print $6; exit }'`
38 msg "${PARTED} -s ${SDDEVICE} mklabel gpt"
39 ${PARTED} -s ${SDDEVICE} mklabel gpt || \
40 (${RMMOD} scsi_debug && die "Error $? creating gpt label")
42 for FILE in ${FILES}; do
43 LODEVICE=`unused_loop_device`
45 rm -f ${FILE} || exit 1
46 dd if=/dev/zero of=${FILE} bs=1024k count=0 seek=256 \
47 &>/dev/null || (${RMMOD} scsi_debug && \
48 die "Error $? creating ${FILE}")
50 # Setup the loopback device on the file.
51 msg "Creating ${LODEVICE} using ${FILE}"
52 ${LOSETUP} ${LODEVICE} ${FILE} || (${RMMOD} scsi_debug \
53 die "Error $? creating ${LODEVICE} using ${FILE}")
55 DEVICES="${DEVICES} ${LODEVICE}"
58 DEVICES="${DEVICES} ${SDDEVICE}"
60 msg "${ZPOOL} create ${FORCE_FLAG} ${ZPOOL_NAME} raidz3 ${DEVICES}"
61 ${ZPOOL} create ${FORCE_FLAG} ${ZPOOL_NAME} raidz3 ${DEVICES} || \
62 (${RMMOD} scsi_debug && exit 1)
66 msg ${ZPOOL} destroy ${ZPOOL_NAME}
67 ${ZPOOL} destroy ${ZPOOL_NAME}
69 for FILE in ${FILES}; do
70 LODEVICE=`${LOSETUP} -a | grep ${FILE} | head -n1|cut -f1 -d:`
71 msg "Removing ${LODEVICE} using ${FILE}"
72 ${LOSETUP} -d ${LODEVICE} ||
73 die "Error $? destroying ${LODEVICE} using ${FILE}"
74 rm -f ${FILE} || exit 1
77 msg "${RMMOD} scsi_debug"
78 ${RMMOD} scsi_debug || die "Error $? removing scsi_debug devices"