test_2e()
{
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
check_mount_and_prep
run_test 11b "LFSCK can rebuild crashed last_id"
test_12a() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for test_12a" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
check_mount_and_prep
for k in $(seq $MDSCOUNT); do
run_test 15b "LFSCK can repair unmatched MDT-object/OST-object pairs (2)"
test_15c() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.7.55) ] &&
skip "Skip the test after 2.7.55 see LU-6437" && return
run_test 18e "Find out orphan OST-object and repair it (5)"
test_18f() {
- [ $OSTCOUNT -lt 2 ] &&
- skip "The test needs at least 2 OSTs" && return
+ [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs" && return
echo "#####"
echo "The target MDT-object is lost. The LFSCK should re-create the"
PATTERN_WITHOUT_HOLE="1"
test_20a() {
- [ $OSTCOUNT -lt 2 ] &&
- skip "The test needs at least 2 OSTs" && return
+ [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs" && return
echo "#####"
echo "The target MDT-object and some of its OST-object are lost."
run_test 20a "Handle the orphan with dummy LOV EA slot properly"
test_20b() {
- [ $OSTCOUNT -lt 2 ] &&
- skip "The test needs at least 2 OSTs" && return
+ [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs" && return
echo "#####"
echo "The target MDT-object and some of its OST-object are lost."
run_test 21 "run all LFSCK components by default"
test_22a() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The parent_A references the child directory via some name entry,"
run_test 22a "LFSCK can repair unmatched pairs (1)"
test_22b() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The parent_A references the child directory via the name entry_B,"
run_test 22b "LFSCK can repair unmatched pairs (2)"
test_23a() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The name entry is there, but the MDT-object for such name "
run_test 23c "LFSCK can repair dangling name entry (3)"
test_24() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "Two MDT-objects back reference the same name entry via their"
test_25() {
[ $(facet_fstype $SINGLEMDS) != ldiskfs ] &&
- skip "Only support to inject failure on ldiskfs" && return
+ skip "ldiskfs only test" && return
echo "#####"
echo "The file type in the name entry does not match the file type"
run_test 26a "LFSCK can add the missing local name entry back to the namespace"
test_26b() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The remote name entry back referenced by the MDT-object is lost."
run_test 27a "LFSCK can recreate the lost local parent directory as orphan"
test_27b() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The remote parent referenced by the MDT-object linkEA is lost."
run_test 27b "LFSCK can recreate the lost remote parent directory as orphan"
test_28() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The target name entry is lost. The LFSCK should insert the"
test_30() {
[ $(facet_fstype $SINGLEMDS) != ldiskfs ] &&
- skip "Only support backend /lost+found for ldiskfs" && return
+ skip "ldiskfs only test" && return
echo "#####"
echo "The namespace LFSCK will move the orphans from backend"
run_test 30 "LFSCK can recover the orphans from backend /lost+found"
test_31a() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For the name entry under a striped directory, if the name"
run_test 31a "The LFSCK can find/repair the name entry with bad name hash (1)"
test_31b() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For the name entry under a striped directory, if the name"
run_test 31b "The LFSCK can find/repair the name entry with bad name hash (2)"
test_31c() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the master MDT-object of the striped directory"
run_test 31c "Re-generate the lost master LMV EA for striped directory"
test_31d() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the master MDT-object of the striped directory"
run_test 31d "Set broken striped directory (modified after broken) as read-only"
test_31e() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the slave MDT-object of the striped directory"
run_test 31e "Re-generate the lost slave LMV EA for striped directory (1)"
test_31f() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the slave MDT-object of the striped directory"
run_test 31f "Re-generate the lost slave LMV EA for striped directory (2)"
test_31g() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the stripe index in the slave LMV EA is"
run_test 31g "Repair the corrupted slave LMV EA"
test_31h() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the shard's name entry in the striped"