37 lines
886 B
Bash
Executable File
37 lines
886 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Test that if a device is missing for a mounted filesystem, btrfs fi show will
|
|
# show which device exactly is missing.
|
|
|
|
source "$TEST_TOP/common" || exit
|
|
|
|
check_prereq mkfs.btrfs
|
|
check_prereq btrfs
|
|
|
|
setup_root_helper
|
|
setup_loopdevs 2
|
|
prepare_loopdevs
|
|
|
|
dev1=${loopdevs[1]}
|
|
dev2=${loopdevs[2]}
|
|
|
|
run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f -d raid1 "${loopdevs[@]}"
|
|
|
|
# Move the device, changing its path, simulating the device being missing
|
|
run_check $SUDO_HELPER mv "$dev2" /dev/loop-non-existent
|
|
|
|
cond_wait_for_loopdevs
|
|
run_check $SUDO_HELPER mount -o degraded $dev1 $TEST_MNT
|
|
|
|
if ! run_check_stdout $SUDO_HELPER "$TOP/btrfs" filesystem show "$TEST_MNT" | \
|
|
grep -q -e "devid[[:space:]]\+2.*MISSING"; then
|
|
|
|
_fail "didn't find exact missing device"
|
|
fi
|
|
|
|
run_check $SUDO_HELPER mv /dev/loop-non-existent "$dev2"
|
|
|
|
run_check $SUDO_HELPER umount "$TEST_MNT"
|
|
|
|
cleanup_loopdevs
|