Whamcloud - gitweb
LU-13535 lfsck: fix possible PFL layout corruption
[fs/lustre-release.git] / lustre / tests / sanity-lfsck.sh
index 46642d2..f19d464 100644 (file)
@@ -5787,6 +5787,35 @@ test_39()
 }
 run_test 39 "LFSCK does not break foreign dir and reverse is also true"
 
+test_40a() {
+       [[ $MDSCOUNT -ge 2 ]] || skip "needs >= 2 MDTs"
+
+       check_mount_and_prep
+       $LFS mkdir -i 1 $DIR/$tdir/dir1
+       $LFS setstripe -E 1M -c1 -S 1M -E 128M -c2 -S 4M -E eof $DIR/$tdir/dir1
+
+       touch $DIR/$tdir/dir1/f1
+       local layout1=$(get_layout_param $DIR/$tdir/dir1/f1)
+
+       echo "Migrate $DIR/$tdir/dir1 from MDT1 to MDT0"
+       $LFS migrate -m 0 $DIR/$tdir/dir1
+
+       echo "trigger LFSCK for layout"
+       do_facet $SINGLEMDS $LCTL lfsck_start -M ${MDT_DEV} -t layout -r
+
+       wait_update_facet $SINGLEMDS "$LCTL get_param -n \
+               mdd.${MDT_DEV}.lfsck_layout |
+               awk '/^status/ { print \\\$2 }'" "completed" 32 || {
+               $SHOW_LAYOUT
+               error "(2) unexpected status"
+       }
+
+       local layout2=$(get_layout_param $DIR/$tdir/dir1/f1)
+
+       [[ "$layout1" == "$layout2" ]] || error "layout lost after lfsck"
+}
+run_test 40a "LFSCK correctly fixes lmm_oi in composite layout"
+
 # restore MDS/OST size
 MDSSIZE=${SAVED_MDSSIZE}
 OSTSIZE=${SAVED_OSTSIZE}