Whamcloud - gitweb
LU-10953 tests: disable sanity/300k on small setups
[fs/lustre-release.git] / lustre / tests / sanity.sh
index 505e190..aa4f738 100755 (executable)
@@ -15,9 +15,20 @@ ALWAYS_EXCEPT="$SANITY_EXCEPT  42a     42b     42c     77k"
 # skipped tests: LU-8411 LU-9096 LU-9054 ..
 ALWAYS_EXCEPT="  407     253     312     $ALWAYS_EXCEPT"
 
+if $SHARED_KEY; then
+# bug number for skipped tests:        LU-9795 (all below)
+       ALWAYS_EXCEPT="$ALWAYS_EXCEPT   17n     60a     133g    300f"
+fi
+
+if [[ $(uname -m) = aarch64 ]]; then
+       # bug number:    LU-11596 (all below)
+       ALWAYS_EXCEPT+=" 42d 42e 63a 63b 64a 64b 64c"
+       # bug number:    LU-11671 LU-11665 LU-11594 LU-11667 LU-11729
+       ALWAYS_EXCEPT+=" 45       101c     103a     317      810"
+fi
+
 # Check Grants after these tests
 GRANT_CHECK_LIST="$GRANT_CHECK_LIST 42a 42b 42c 42d 42e 63a 63b 64a 64b 64c"
-
 SRCDIR=$(cd $(dirname $0); echo $PWD)
 export PATH=$PATH:/sbin
 
@@ -106,10 +117,8 @@ elif [ -r /etc/os-release ]; then
 
                if [[ $ubuntu_version -gt $(version_code 16.0.0) ]]; then
                        # bug number for skipped test:
-                       #                LU-10334 LU-10335 LU-10335 LU-10335
-                       ALWAYS_EXCEPT+=" 103a     130a     130b     130c"
-                       #                LU-10335 LU-10335 LU-10366
-                       ALWAYS_EXCEPT+=" 130d     130e     410"
+                       #                LU-10334 LU-10366
+                       ALWAYS_EXCEPT+=" 103a     410"
                fi
        fi
 fi
@@ -1135,12 +1144,6 @@ test_24u() { # bug12192
 }
 run_test 24u "create stripe file"
 
-page_size() {
-       local size
-       size=$(getconf PAGE_SIZE 2>/dev/null)
-       echo -n ${size:-4096}
-}
-
 simple_cleanup_common() {
        local rc=0
        trap 0
@@ -1198,7 +1201,7 @@ test_24v() {
        # take into account of overhead in lu_dirpage header and end mark in
        # each page, plus one in rpc_num calculation.
        local dirent_size=$((32 + (${#tfile} | 7) + 1 + 8))
-       local page_entries=$((($(page_size) - 24) / dirent_size))
+       local page_entries=$(((PAGE_SIZE - 24) / dirent_size))
        local mdt_idx=$($LFS getdirstripe -i $(dirname $fname))
        local rpc_pages=$(max_pages_per_rpc $mdt_idx)
        local rpc_max=$((nrfiles / (page_entries * rpc_pages) + stripes))
@@ -1506,7 +1509,7 @@ run_test 27e "setstripe existing file (should return error)"
 test_27f() {
        test_mkdir $DIR/$tdir
        $LFS setstripe -S 100 -i 0 -c 1 $DIR/$tdir/$tfile &&
-               error "$SETSTRIPE $DIR/$tdir/$tfile failed"
+               error "$LFS setstripe $DIR/$tdir/$tfile failed"
        $CHECKSTAT -t file $DIR/$tdir/$tfile &&
                error "$CHECKSTAT -t file $DIR/$tdir/$tfile should fail"
        dd if=/dev/zero of=$DIR/$tdir/$tfile bs=4k count=4 || error "dd failed"
@@ -1632,7 +1635,7 @@ exhaust_precreations() {
        do_facet $mfacet lctl get_param osc.$mdtosc_proc2.prealloc*
 
        test_mkdir -p $DIR/$tdir/${OST}
-       $SETSTRIPE -i $OSTIDX -c 1 $DIR/$tdir/${OST}
+       $LFS setstripe -i $OSTIDX -c 1 $DIR/$tdir/${OST}
 #define OBD_FAIL_OST_ENOSPC              0x215
        do_facet $ofacet lctl set_param fail_val=$FAILIDX fail_loc=0x215
        echo "Creating to objid $last_id on ost $OST..."
@@ -1952,33 +1955,33 @@ run_test 27y "create files while OST0 is degraded and the rest inactive"
 
 check_seq_oid()
 {
-        log "check file $1"
-
-        lmm_count=$($GETSTRIPE -c $1)
-        lmm_seq=$($GETSTRIPE -v $1 | awk '/lmm_seq/ { print $2 }')
-        lmm_oid=$($GETSTRIPE -v $1 | awk '/lmm_object_id/ { print $2 }')
-
-        local old_ifs="$IFS"
-        IFS=$'[:]'
-        fid=($($LFS path2fid $1))
-        IFS="$old_ifs"
-
-        log "FID seq ${fid[1]}, oid ${fid[2]} ver ${fid[3]}"
-        log "LOV seq $lmm_seq, oid $lmm_oid, count: $lmm_count"
-
-        # compare lmm_seq and lu_fid->f_seq
-        [ $lmm_seq = ${fid[1]} ] || { error "SEQ mismatch"; return 1; }
-        # compare lmm_object_id and lu_fid->oid
-        [ $lmm_oid = ${fid[2]} ] || { error "OID mismatch"; return 2; }
-
-        # check the trusted.fid attribute of the OST objects of the file
-        local have_obdidx=false
-        local stripe_nr=0
-        $GETSTRIPE $1 | while read obdidx oid hex seq; do
-                # skip lines up to and including "obdidx"
-                [ -z "$obdidx" ] && break
-                [ "$obdidx" = "obdidx" ] && have_obdidx=true && continue
-                $have_obdidx || continue
+       log "check file $1"
+
+       lmm_count=$($LFS getstripe -c $1)
+       lmm_seq=$($LFS getstripe -v $1 | awk '/lmm_seq/ { print $2 }')
+       lmm_oid=$($LFS getstripe -v $1 | awk '/lmm_object_id/ { print $2 }')
+
+       local old_ifs="$IFS"
+       IFS=$'[:]'
+       fid=($($LFS path2fid $1))
+       IFS="$old_ifs"
+
+       log "FID seq ${fid[1]}, oid ${fid[2]} ver ${fid[3]}"
+       log "LOV seq $lmm_seq, oid $lmm_oid, count: $lmm_count"
+
+       # compare lmm_seq and lu_fid->f_seq
+       [ $lmm_seq = ${fid[1]} ] || { error "SEQ mismatch"; return 1; }
+       # compare lmm_object_id and lu_fid->oid
+       [ $lmm_oid = ${fid[2]} ] || { error "OID mismatch"; return 2; }
+
+       # check the trusted.fid attribute of the OST objects of the file
+       local have_obdidx=false
+       local stripe_nr=0
+       $LFS getstripe $1 | while read obdidx oid hex seq; do
+               # skip lines up to and including "obdidx"
+               [ -z "$obdidx" ] && break
+               [ "$obdidx" = "obdidx" ] && have_obdidx=true && continue
+               $have_obdidx || continue
 
                local ost=$((obdidx + 1))
                local dev=$(ostdevname $ost)
@@ -2088,10 +2091,10 @@ test_27A() { # b=19102
 
        save_layout_restore_at_exit $MOUNT
        $LFS setstripe -c 0 -i -1 -S 0 $MOUNT
-       wait_update $HOSTNAME "$GETSTRIPE -c $MOUNT | sed 's/  *//g'" "1" 20 ||
-               error "stripe count $($GETSTRIPE -c $MOUNT) != 1"
-       local default_size=$($GETSTRIPE -S $MOUNT)
-       local default_offset=$($GETSTRIPE -i $MOUNT)
+       wait_update $HOSTNAME "$LFS getstripe -c $MOUNT | sed 's/  *//g'" "1" 20 ||
+               error "stripe count $($LFS getstripe -c $MOUNT) != 1"
+       local default_size=$($LFS getstripe -S $MOUNT)
+       local default_offset=$($LFS getstripe -i $MOUNT)
        local dsize=$(do_facet $SINGLEMDS \
                "$LCTL get_param -n lod.$(facet_svc $SINGLEMDS)*.stripesize")
        [ $default_size -eq $dsize ] ||
@@ -2137,9 +2140,9 @@ test_27C() { #LU-2871
        cd $DIR/$tdir
        for i in $(seq 0 $((OSTCOUNT - 1))); do
                # set stripe across all OSTs starting from OST$i
-               $SETSTRIPE -i $i -c -1 $tfile$i
+               $LFS setstripe -i $i -c -1 $tfile$i
                # get striping information
-               ost_idx=($($GETSTRIPE $tfile$i |
+               ost_idx=($($LFS getstripe $tfile$i |
                         tail -n $((OSTCOUNT + 1)) | awk '{print $1}'))
                echo ${ost_idx[@]}
 
@@ -2239,7 +2242,7 @@ test_27F() { # LU-5346/LU-7975
 
        test_mkdir $DIR/$tdir
        rm -f $DIR/$tdir/f0
-       $SETSTRIPE -c 2 $DIR/$tdir
+       $LFS setstripe -c 2 $DIR/$tdir
 
        # stop all OSTs to reproduce situation for LU-7975 ticket
        for num in $(seq $OSTCOUNT); do
@@ -2265,7 +2268,8 @@ test_27F() { # LU-5346/LU-7975
        wait $catpid || error "cat failed"
 
        cmp /etc/hosts $DIR/$tdir/f0 || error "cmp failed"
-       [[ $($GETSTRIPE -c $DIR/$tdir/f0) == 2 ]] || error "wrong stripecount"
+       [[ $($LFS getstripe -c $DIR/$tdir/f0) == 2 ]] ||
+               error "wrong stripecount"
 
 }
 run_test 27F "Client resend delayed layout creation with non-zero size"
@@ -2312,8 +2316,8 @@ test_27H() {
             egrep -c "l_ost_idx: [02]$") == "2" )) ||
                error "expected l_ost_idx: [02]$ not matched"
 
-       # make sure ost list have been cleared
-       local stripesize=$($GETSTRIPE -S $DIR/$tdir)
+       # make sure ost list has been cleared
+       local stripesize=$($LFS getstripe -S $DIR/$tdir)
        $LFS setstripe -S $((stripesize * 4)) -i 1 \
                -c $((OSTCOUNT - 1)) $DIR/$tdir || error "setstripe"
        touch $DIR/$tdir/f3
@@ -2449,19 +2453,19 @@ test_31f() { # bug 4554
 
        set -vx
        test_mkdir $DIR/d31f
-       $SETSTRIPE -S 1048576 -c 1 $DIR/d31f
+       $LFS setstripe -S 1048576 -c 1 $DIR/d31f
        cp /etc/hosts $DIR/d31f
        ls -l $DIR/d31f
-       $GETSTRIPE $DIR/d31f/hosts
+       $LFS getstripe $DIR/d31f/hosts
        multiop_bg_pause $DIR/d31f D_c || return 1
        MULTIPID=$!
 
        rm -rv $DIR/d31f || error "first of $DIR/d31f"
        test_mkdir $DIR/d31f
-       $SETSTRIPE -S 1048576 -c 1 $DIR/d31f
+       $LFS setstripe -S 1048576 -c 1 $DIR/d31f
        cp /etc/hosts $DIR/d31f
        ls -l $DIR/d31f
-       $GETSTRIPE $DIR/d31f/hosts
+       $LFS getstripe $DIR/d31f/hosts
        multiop_bg_pause $DIR/d31f D_c || return 1
        MULTIPID2=$!
 
@@ -3098,10 +3102,10 @@ TEST_34_SIZE=${TEST_34_SIZE:-2000000000000}
 test_34a() {
        rm -f $DIR/f34
        $MCREATE $DIR/f34 || error "mcreate failed"
-       $GETSTRIPE $DIR/f34 2>&1 | grep -q "no stripe info" ||
+       $LFS getstripe $DIR/f34 2>&1 | grep -q "no stripe info" ||
                error "getstripe failed"
        $TRUNCATE $DIR/f34 $TEST_34_SIZE || error "truncate failed"
-       $GETSTRIPE $DIR/f34 2>&1 | grep -q "no stripe info" ||
+       $LFS getstripe $DIR/f34 2>&1 | grep -q "no stripe info" ||
                error "getstripe failed"
        $CHECKSTAT -s $TEST_34_SIZE $DIR/f34 ||
                error "Size of $DIR/f34 not equal to $TEST_34_SIZE bytes"
@@ -3113,7 +3117,7 @@ test_34b() {
        $CHECKSTAT -s $TEST_34_SIZE $DIR/f34 ||
                error "Size of $DIR/f34 not equal to $TEST_34_SIZE bytes"
        $OPENFILE -f O_RDONLY $DIR/f34
-       $GETSTRIPE $DIR/f34 2>&1 | grep -q "no stripe info" ||
+       $LFS getstripe $DIR/f34 2>&1 | grep -q "no stripe info" ||
                error "getstripe failed"
        $CHECKSTAT -s $TEST_34_SIZE $DIR/f34 ||
                error "Size of $DIR/f34 not equal to $TEST_34_SIZE bytes"
@@ -3125,7 +3129,8 @@ test_34c() {
        $CHECKSTAT -s $TEST_34_SIZE $DIR/f34 ||
                error "Size of $DIR/f34 not equal to $TEST_34_SIZE bytes"
        $OPENFILE -f O_RDWR $DIR/f34
-       $GETSTRIPE $DIR/f34 2>&1 | grep -q "no stripe info" && error
+       $LFS getstripe $DIR/f34 2>&1 | grep -q "no stripe info" &&
+               error "$LFS getstripe failed"
        $CHECKSTAT -s $TEST_34_SIZE $DIR/f34 ||
                error "Size of $DIR/f34 not equal to $TEST_34_SIZE bytes"
 }
@@ -3205,7 +3210,7 @@ test_34h() {
        # Since just timed wait is not good enough, let's do a sync write
        # that way we are sure enough time for a roundtrip + processing
        # passed + 2 seconds of extra margin.
-       dd if=/dev/zero of=$DIR/${tfile}-1 bs=4096 oflag=direct count=1
+       dd if=/dev/zero of=$DIR/${tfile}-1 bs=$PAGE_SIZE oflag=direct count=1
        rm $DIR/${tfile}-1
        sleep 2
 
@@ -3991,7 +3996,6 @@ test_42e() { # bug22074
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
        local TDIR=$DIR/${tdir}e
-       local pagesz=$(page_size)
        local pages=16 # hardcoded 16 pages, don't change it.
        local files=$((OSTCOUNT * 500)) # hopefully 500 files on each OST
        local proc_osc0="osc.${FSNAME}-OST0000-osc-[^MDT]*"
@@ -3999,7 +4003,7 @@ test_42e() { # bug22074
        local warmup_files
 
        test_mkdir $DIR/${tdir}e
-       $SETSTRIPE -c 1 $TDIR
+       $LFS setstripe -c 1 $TDIR
        createmany -o $TDIR/f $files
 
        max_dirty_mb=$($LCTL get_param -n $proc_osc0/max_dirty_mb)
@@ -4012,7 +4016,7 @@ test_42e() { # bug22074
        # write a large amount of data into one file and sync, to get good
        # avail_grant number from OST.
        for ((i=0; i<$warmup_files; i++)); do
-               idx=$($GETSTRIPE -i $TDIR/w$i)
+               idx=$($LFS getstripe -i $TDIR/w$i)
                [ $idx -ne 0 ] && continue
                dd if=/dev/zero of=$TDIR/w$i bs="$max_dirty_mb"M count=1
                break
@@ -4026,7 +4030,7 @@ test_42e() { # bug22074
        # RPCs directly. but depends on the env, VFS may trigger flush during this
        # period, hopefully we are good.
        for ((i=0; i<$warmup_files; i++)); do
-               idx=$($GETSTRIPE -i $TDIR/w$i)
+               idx=$($LFS getstripe -i $TDIR/w$i)
                [ $idx -ne 0 ] && continue
                dd if=/dev/zero of=$TDIR/w$i bs=1M count=1 2>/dev/null
        done
@@ -4036,8 +4040,8 @@ test_42e() { # bug22074
        # perform the real test
        $LCTL set_param $proc_osc0/rpc_stats 0
        for ((;i<$files; i++)); do
-               [ $($GETSTRIPE -i $TDIR/f$i) -eq 0 ] || continue
-               dd if=/dev/zero of=$TDIR/f$i bs=$pagesz count=$pages 2>/dev/null
+               [ $($LFS getstripe -i $TDIR/f$i) -eq 0 ] || continue
+               dd if=/dev/zero of=$TDIR/f$i bs=$PAGE_SIZE count=$pages 2>/dev/null
        done
        sync
        $LCTL get_param $proc_osc0/rpc_stats
@@ -4216,10 +4220,10 @@ test_46() {
        f="$DIR/f46"
        stop_writeback
        sync
-       dd if=/dev/zero of=$f bs=`page_size` seek=511 count=1
+       dd if=/dev/zero of=$f bs=$PAGE_SIZE seek=511 count=1
        sync
-       dd conv=notrunc if=/dev/zero of=$f bs=`page_size` seek=1023 count=1
-       dd conv=notrunc if=/dev/zero of=$f bs=`page_size` seek=511 count=1
+       dd conv=notrunc if=/dev/zero of=$f bs=$PAGE_SIZE seek=1023 count=1
+       dd conv=notrunc if=/dev/zero of=$f bs=$PAGE_SIZE seek=511 count=1
        sync
        start_writeback
 }
@@ -4338,7 +4342,7 @@ test_49() { # LU-1030
        [[ $ost1_size -lt 2 ]] && ost1_size=2
        [[ $ost1_size -gt 819200 ]] && ost1_size=819200
 
-       $SETSTRIPE -c 1 -i 0 $DIR/$tfile
+       $LFS setstripe -c 1 -i 0 $DIR/$tfile
        dd if=/dev/zero of=$DIR/$tfile bs=4k count=$((ost1_size >> 2)) &
        local dd_pid=$!
 
@@ -4660,7 +4664,7 @@ test_54b() {
        f="$DIR/f54b"
        mknod $f c 1 3
        chmod 0666 $f
-       dd if=/dev/zero of=$f bs=$(page_size) count=1
+       dd if=/dev/zero of=$f bs=$PAGE_SIZE count=1
 }
 run_test 54b "char device works in lustre ======================"
 
@@ -4699,17 +4703,17 @@ test_54c() {
        trap cleanup_54c EXIT
        mknod $loopdev b 7 $LOOPNUM
        echo "make a loop file system with $DIR/$tfile on $loopdev ($LOOPNUM)."
-       dd if=/dev/zero of=$DIR/$tfile bs=$(get_page_size client) seek=1024 count=1 > /dev/null
+       dd if=/dev/zero of=$DIR/$tfile bs=$PAGE_SIZE seek=1024 count=1 > /dev/null
        losetup $loopdev $DIR/$tfile ||
                error "can't set up $loopdev for $DIR/$tfile"
        mkfs.ext2 $loopdev || error "mke2fs on $loopdev"
        test_mkdir $DIR/$tdir
        mount -t ext2 $loopdev $DIR/$tdir ||
                error "error mounting $loopdev on $DIR/$tdir"
-       dd if=/dev/zero of=$DIR/$tdir/tmp bs=$(get_page_size client) count=30 ||
+       dd if=/dev/zero of=$DIR/$tdir/tmp bs=$PAGE_SIZE count=30 ||
                error "dd write"
        df $DIR/$tdir
-       dd if=$DIR/$tdir/tmp of=/dev/zero bs=$(get_page_size client) count=30 ||
+       dd if=$DIR/$tdir/tmp of=/dev/zero bs=$PAGE_SIZE count=30 ||
                error "dd read"
        cleanup_54c
 }
@@ -5515,7 +5519,7 @@ test_56wb() {
 run_test 56wb "check lfs_migrate pool support"
 
 test_56wc() {
-       local file1="$DIR/$tdir/file 1"
+       local file1="$DIR/$tdir/file1"
 
        echo -n "Creating test dir..."
        test_mkdir $DIR/$tdir &> /dev/null || error "cannot create dir"
@@ -5905,6 +5909,9 @@ test_56ab() { # LU-10705
 run_test 56ab "lfs find --blocks"
 
 test_56ba() {
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.50) ] &&
+               skip "Need MDS version at least 2.10.50"
+
        # Create composite files with one component
        local dir=$DIR/$tdir
 
@@ -6294,10 +6301,11 @@ test_60b() { # bug 6411
                                else
                                        print from_begin
                          }")
-       [[ $LLOG_COUNT -gt 100 ]] &&
+
+       [[ $LLOG_COUNT -gt 120 ]] &&
                error "CDEBUG_LIMIT not limiting messages ($LLOG_COUNT)" || true
 }
-run_test 60b "limit repeated messages from CERROR/CWARN ========"
+run_test 60b "limit repeated messages from CERROR/CWARN"
 
 test_60c() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
@@ -6342,11 +6350,41 @@ test_60e() {
 }
 run_test 60e "no space while new llog is being created"
 
+test_60g() {
+       local pid
+
+       test_mkdir -c $MDSCOUNT $DIR/$tdir
+       $LFS setdirstripe -D -i -1 -c $MDSCOUNT $DIR/$tdir
+
+       (
+               local index=0
+               while true; do
+                       mkdir $DIR/$tdir/subdir$index 2>/dev/null
+                       rmdir $DIR/$tdir/subdir$index 2>/dev/null
+                       index=$((index + 1))
+               done
+       ) &
+
+       pid=$!
+
+       for i in $(seq 100); do 
+               # define OBD_FAIL_OSD_TXN_START    0x19a
+               do_facet mds1 lctl set_param fail_loc=0x8000019a
+               usleep 100
+       done
+
+       kill -9 $pid
+
+       mkdir $DIR/$tdir/new || error "mkdir failed"
+       rmdir $DIR/$tdir/new || error "rmdir failed"
+}
+run_test 60g "transaction abort won't cause MDT hung"
+
 test_61() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
        f="$DIR/f61"
-       dd if=/dev/zero of=$f bs=$(page_size) count=1 || error "dd $f failed"
+       dd if=/dev/zero of=$f bs=$PAGE_SIZE count=1 || error "dd $f failed"
        cancel_lru_locks osc
        $MULTIOP $f OSMWUc || error "$MULTIOP $f failed"
        sync
@@ -6437,8 +6475,6 @@ run_test 64c "verify grant shrink"
 want_grant() {
        local tgt=$1
 
-       local page_size=$(get_page_size client)
-
        local nrpages=$($LCTL get_param -n osc.${tgt}.max_pages_per_rpc)
        local rpc_in_flight=$($LCTL get_param -n osc.${tgt}.max_rpcs_in_flight)
 
@@ -6447,15 +6483,15 @@ want_grant() {
 
        local dirty_max_pages=$($LCTL get_param -n osc.${tgt}.max_dirty_mb)
 
-       dirty_max_pages=$((dirty_max_pages * 1024 * 1024 / page_size))
+       dirty_max_pages=$((dirty_max_pages * 1024 * 1024 / PAGE_SIZE))
 
        [[ $dirty_max_pages -gt $nrpages ]] && nrpages=$dirty_max_pages
-       local undirty=$((nrpages * page_size))
+       local undirty=$((nrpages * PAGE_SIZE))
 
        local max_extent_pages
        max_extent_pages=$($LCTL get_param osc.${tgt}.import |
            grep grant_max_extent_size | awk '{print $2}')
-       max_extent_pages=$((max_extent_pages / page_size))
+       max_extent_pages=$((max_extent_pages / PAGE_SIZE))
        local nrextents=$(((nrpages + max_extent_pages - 1) / max_extent_pages))
        local grant_extent_tax
        grant_extent_tax=$($LCTL get_param osc.${tgt}.import |
@@ -6500,7 +6536,7 @@ test_64d() {
        local max_cur_granted=$(($(want_grant $tgt) + $(grant_chunk $tgt)))
        stack_trap "rm -f $file" EXIT
 
-       $SETSTRIPE $file -i 0 -c 1
+       $LFS setstripe $file -i 0 -c 1
        dd if=/dev/zero of=$file bs=1M count=1000 &
        ddpid=$!
 
@@ -6537,9 +6573,9 @@ test_65b() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
        test_mkdir $DIR/$tdir
-       local STRIPESIZE=$($GETSTRIPE -S $DIR/$tdir)
+       local STRIPESIZE=$($LFS getstripe -S $DIR/$tdir)
 
-       $SETSTRIPE -S $((STRIPESIZE * 2)) -i 0 -c 1 $DIR/$tdir ||
+       $LFS setstripe -S $((STRIPESIZE * 2)) -i 0 -c 1 $DIR/$tdir ||
                                                error "setstripe"
        touch $DIR/$tdir/f2
        $LVERIFY $DIR/$tdir $DIR/$tdir/f2 || error "lverify failed"
@@ -6551,7 +6587,7 @@ test_65c() {
        [ $OSTCOUNT -lt 2 ] && skip_env "need at least 2 OSTs"
 
        test_mkdir $DIR/$tdir
-       local stripesize=$($GETSTRIPE -S $DIR/$tdir)
+       local stripesize=$($LFS getstripe -S $DIR/$tdir)
 
        $LFS setstripe -S $((stripesize * 4)) -i 1 \
                -c $((OSTCOUNT - 1)) $DIR/$tdir || error "setstripe"
@@ -6564,8 +6600,8 @@ test_65d() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
        test_mkdir $DIR/$tdir
-       local STRIPECOUNT=$($GETSTRIPE -c $DIR/$tdir)
-       local STRIPESIZE=$($GETSTRIPE -S $DIR/$tdir)
+       local STRIPECOUNT=$($LFS getstripe -c $DIR/$tdir)
+       local STRIPESIZE=$($LFS getstripe -S $DIR/$tdir)
 
        if [[ $STRIPECOUNT -le 0 ]]; then
                sc=1
@@ -6575,7 +6611,7 @@ test_65d() {
        else
                sc=$(($STRIPECOUNT - 1))
        fi
-       $SETSTRIPE -S $STRIPESIZE -c $sc $DIR/$tdir || error "setstripe"
+       $LFS setstripe -S $STRIPESIZE -c $sc $DIR/$tdir || error "setstripe"
        touch $DIR/$tdir/f4 $DIR/$tdir/f5
        $LVERIFY $DIR/$tdir $DIR/$tdir/f4 $DIR/$tdir/f5 ||
                error "lverify failed"
@@ -6587,8 +6623,8 @@ test_65e() {
 
        test_mkdir $DIR/$tdir
 
-       $SETSTRIPE $DIR/$tdir || error "setstripe"
-       $GETSTRIPE -v $DIR/$tdir | grep "Default" ||
+       $LFS setstripe $DIR/$tdir || error "setstripe"
+       $LFS getstripe -v $DIR/$tdir | grep "Default" ||
                                        error "no stripe info failed"
        touch $DIR/$tdir/f6
        $LVERIFY $DIR/$tdir $DIR/$tdir/f6 || error "lverify failed"
@@ -6599,7 +6635,8 @@ test_65f() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
        test_mkdir $DIR/${tdir}f
-       $RUNAS $SETSTRIPE $DIR/${tdir}f && error "setstripe succeeded" || true
+       $RUNAS $LFS setstripe $DIR/${tdir}f &&
+               error "setstripe succeeded" || true
 }
 run_test 65f "dir setstripe permission (should return error) ==="
 
@@ -6607,7 +6644,7 @@ test_65g() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
        test_mkdir $DIR/$tdir
-       local STRIPESIZE=$($GETSTRIPE -S $DIR/$tdir)
+       local STRIPESIZE=$($LFS getstripe -S $DIR/$tdir)
 
        $LFS setstripe -S $((STRIPESIZE * 2)) -i 0 -c 1 $DIR/$tdir ||
                error "setstripe -S failed"
@@ -6621,12 +6658,12 @@ test_65h() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
        test_mkdir $DIR/$tdir
-       local STRIPESIZE=$($GETSTRIPE -S $DIR/$tdir)
+       local STRIPESIZE=$($LFS getstripe -S $DIR/$tdir)
 
        $LFS setstripe -S $((STRIPESIZE * 2)) -i 0 -c 1 $DIR/$tdir ||
                error "setstripe -S failed"
        test_mkdir $DIR/$tdir/dd1
-       [ $($LFS getstripe -c $DIR/$tdir) = $($GETSTRIPE -c $DIR/$tdir/dd1) ] ||
+       [ $($LFS getstripe -c $DIR/$tdir) = $($LFS getstripe -c $DIR/$tdir/dd1) ] ||
                error "stripe info inherit failed"
 }
 run_test 65h "directory stripe info inherit ===================="
@@ -6663,7 +6700,7 @@ test_65j() { # bug6367
 
        save_layout_restore_at_exit $MOUNT
 
-       $SETSTRIPE -d $MOUNT || error "setstripe failed"
+       $LFS setstripe -d $MOUNT || error "setstripe failed"
 }
 run_test 65j "set default striping on root directory (bug 6367)="
 
@@ -6705,7 +6742,7 @@ test_65k() { # bug11679
                               awk -F: /$ost/'{ print $1 }' | head -n 1)
 
                mkdir -p $DIR/$tdir
-               $SETSTRIPE -i $ostnum -c 1 $DIR/$tdir
+               $LFS setstripe -i $ostnum -c 1 $DIR/$tdir
                createmany -o $DIR/$tdir/$tfile.$ostnum. 1000
 
                echo "Deactivate: " $INACTIVE_OSC
@@ -6721,8 +6758,8 @@ test_65k() { # bug11679
 
                for idx in $(seq 0 $((OSTCOUNT - 1))); do
                        [ -f $DIR/$tdir/$idx ] && continue
-                       echo "$SETSTRIPE -i $idx -c 1 $DIR/$tdir/$idx"
-                       $SETSTRIPE -i $idx -c 1 $DIR/$tdir/$idx ||
+                       echo "$LFS setstripe -i $idx -c 1 $DIR/$tdir/$idx"
+                       $LFS setstripe -i $idx -c 1 $DIR/$tdir/$idx ||
                                { cleanup_65k;
                                  error "setstripe $idx should succeed"; }
                        rm -f $DIR/$tdir/$idx || error "rm $idx failed"
@@ -6746,14 +6783,14 @@ test_65l() { # bug 12836
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
        test_mkdir -p $DIR/$tdir/test_dir
-       $SETSTRIPE -c -1 $DIR/$tdir/test_dir
+       $LFS setstripe -c -1 $DIR/$tdir/test_dir
        $LFS find -mtime -1 $DIR/$tdir >/dev/null
 }
 run_test 65l "lfs find on -1 stripe dir ========================"
 
 test_65m() {
        local layout=$(save_layout $MOUNT)
-       $RUNAS $SETSTRIPE -c 2 $MOUNT && {
+       $RUNAS $LFS setstripe -c 2 $MOUNT && {
                restore_layout $MOUNT $layout
                error "setstripe should fail by non-root users"
        }
@@ -6789,7 +6826,7 @@ test_69() {
        remote_ost_nodsh && skip "remote OST with nodsh"
 
        f="$DIR/$tfile"
-       $SETSTRIPE -c 1 -i 0 $f
+       $LFS setstripe -c 1 -i 0 $f
 
        $DIRECTIO write ${f}.2 0 1 || error "directio write error"
 
@@ -7193,7 +7230,7 @@ test_77g() { # bug 10889
        local file=$DIR/$tfile
        stack_trap "rm -f $file" EXIT
 
-       $SETSTRIPE -c 1 -i 0 $file
+       $LFS setstripe -c 1 -i 0 $file
        #define OBD_FAIL_OST_CHECKSUM_RECEIVE       0x21a
        do_facet ost1 lctl set_param fail_loc=0x8000021a
        set_checksums 1
@@ -7297,7 +7334,7 @@ test_78() { # bug 10901
 
        [ "$SLOW" = "no" ] && NSEQ=1 && [ $F78SIZE -gt 32 ] && F78SIZE=32
        echo "File size: $F78SIZE"
-       $SETSTRIPE -c $OSTCOUNT $DIR/$tfile || error "setstripe failed"
+       $LFS setstripe -c $OSTCOUNT $DIR/$tfile || error "setstripe failed"
        for i in $(seq 1 $NSEQ); do
                FSIZE=$(($F78SIZE / ($NSEQ - $i + 1)))
                echo directIO rdwr round $i of $NSEQ
@@ -7380,7 +7417,7 @@ test_81a() { # LU-456
        do_facet ost1 lctl set_param fail_loc=0x80000228
 
        # write should trigger a retry and success
-       $SETSTRIPE -i 0 -c 1 $DIR/$tfile
+       $LFS setstripe -i 0 -c 1 $DIR/$tfile
        $MULTIOP $DIR/$tfile oO_CREAT:O_RDWR:O_SYNC:w4096c
        RC=$?
        if [ $RC -ne 0 ] ; then
@@ -7398,7 +7435,7 @@ test_81b() { # LU-456
        do_facet ost1 lctl set_param fail_loc=0x228
 
        # write should retry several times and return -ENOSPC finally
-       $SETSTRIPE -i 0 -c 1 $DIR/$tfile
+       $LFS setstripe -i 0 -c 1 $DIR/$tfile
        $MULTIOP $DIR/$tfile oO_CREAT:O_RDWR:O_SYNC:w4096c
        RC=$?
        ENOSPC=28
@@ -7430,18 +7467,6 @@ test_82() { # LU-1031
 }
 run_test 82 "Basic grouplock test"
 
-test_83() {
-       local sfile="/boot/System.map-$(uname -r)"
-       [ ! -f $sfile ] && skip "No $sfile found"
-       # define OBD_FAIL_LLITE_PTASK_IO_FAIL 0x140d
-       $LCTL set_param fail_loc=0x140d
-       cp $sfile $DIR/$tfile || error "write failed"
-       diff -c $sfile $DIR/$tfile || error "files are different"
-       $LCTL set_param fail_loc=0
-       rm -f $DIR/$tfile
-}
-run_test 83 "Short write in ptask ==============================="
-
 test_99() {
        [ -z "$(which cvs 2>/dev/null)" ] && skip_env "could not find cvs"
 
@@ -7561,11 +7586,11 @@ run_test 101a "check read-ahead for random reads"
 
 setup_test101bc() {
        test_mkdir $DIR/$tdir
-       local STRIPE_SIZE=$1
+       local ssize=$1
        local FILE_LENGTH=$2
        STRIPE_OFFSET=0
 
-       local FILE_SIZE_MB=$((FILE_LENGTH / STRIPE_SIZE))
+       local FILE_SIZE_MB=$((FILE_LENGTH / ssize))
 
        local list=$(comma_list $(osts_nodes))
        set_osd_param $list '' read_cache_enable 0
@@ -7573,9 +7598,9 @@ setup_test101bc() {
 
        trap cleanup_test101bc EXIT
        # prepare the read-ahead file
-       $SETSTRIPE -S $STRIPE_SIZE -i $STRIPE_OFFSET -c $OSTCOUNT $DIR/$tfile
+       $LFS setstripe -S $ssize -i $STRIPE_OFFSET -c $OSTCOUNT $DIR/$tfile
 
-       dd if=/dev/zero of=$DIR/$tfile bs=$STRIPE_SIZE \
+       dd if=/dev/zero of=$DIR/$tfile bs=$ssize \
                                count=$FILE_SIZE_MB 2> /dev/null
 
 }
@@ -7699,7 +7724,7 @@ test_101d() {
                skip "Need free space ${sz_MB}M, have ${free_MB}M"
 
        echo "Create test file $file size ${sz_MB}M, ${free_MB}M free"
-       $SETSTRIPE -c -1 $file || error "setstripe failed"
+       $LFS setstripe -c -1 $file || error "setstripe failed"
 
        dd if=/dev/zero of=$file bs=1M count=$sz_MB || error "dd failed"
        echo Cancel LRU locks on lustre client to flush the client cache
@@ -7804,7 +7829,7 @@ run_test 101f "check mmap read performance"
 
 test_101g_brw_size_test() {
        local mb=$1
-       local pages=$((mb * 1048576 / $(page_size)))
+       local pages=$((mb * 1048576 / PAGE_SIZE))
        local file=$DIR/$tfile
 
        $LCTL set_param osc.*.max_pages_per_rpc=${mb}M ||
@@ -7894,14 +7919,14 @@ setup_test102() {
 
        trap cleanup_test102 EXIT
        cd $DIR
-       $1 $SETSTRIPE -S $STRIPE_SIZE -i $STRIPE_OFFSET -c $STRIPE_COUNT $tdir
+       $1 $LFS setstripe -S $STRIPE_SIZE -i $STRIPE_OFFSET -c $STRIPE_COUNT $tdir
        cd $DIR/$tdir
        for num in 1 2 3 4; do
                for count in $(seq 1 $STRIPE_COUNT); do
                        for idx in $(seq 0 $[$STRIPE_COUNT - 1]); do
                                local size=`expr $STRIPE_SIZE \* $num`
                                local file=file"$num-$idx-$count"
-                               $1 $SETSTRIPE -S $size -i $idx -c $count $file
+                               $1 $LFS setstripe -S $size -i $idx -c $count $file
                        done
                done
        done
@@ -7985,9 +8010,9 @@ test_102b() {
        # b10930: get/set/list trusted.lov xattr
        echo "get/set/list trusted.lov xattr ..."
        local testfile=$DIR/$tfile
-       $SETSTRIPE -S 65536 -i 1 -c $OSTCOUNT $testfile ||
+       $LFS setstripe -S 65536 -i 1 -c $OSTCOUNT $testfile ||
                error "setstripe failed"
-       local STRIPECOUNT=$($GETSTRIPE -c $testfile) ||
+       local STRIPECOUNT=$($LFS getstripe -c $testfile) ||
                error "getstripe failed"
        getfattr -d -m "^trusted" $testfile 2>/dev/null | grep "trusted.lov" ||
                error "can't get trusted.lov from $testfile"
@@ -7998,8 +8023,8 @@ test_102b() {
 
        $MCREATE $testfile2
        setfattr -n trusted.lov -v $value $testfile2
-       local stripe_size=$($GETSTRIPE -S $testfile2)
-       local stripe_count=$($GETSTRIPE -c $testfile2)
+       local stripe_size=$($LFS getstripe -S $testfile2)
+       local stripe_count=$($LFS getstripe -c $testfile2)
        [[ $stripe_size -eq 65536 ]] ||
                error "stripe size $stripe_size != 65536"
        [[ $stripe_count -eq $STRIPECOUNT ]] ||
@@ -8018,9 +8043,9 @@ test_102c() {
        test_mkdir $DIR/$tdir
        chown $RUNAS_ID $DIR/$tdir
        local testfile=$DIR/$tdir/$tfile
-       $RUNAS $SETSTRIPE -S 65536 -i 1 -c $OSTCOUNT $testfile ||
+       $RUNAS $LFS setstripe -S 65536 -i 1 -c $OSTCOUNT $testfile ||
                error "setstripe failed"
-       local STRIPECOUNT=$($RUNAS $GETSTRIPE -c $testfile) ||
+       local STRIPECOUNT=$($RUNAS $LFS getstripe -c $testfile) ||
                error "getstripe failed"
        $RUNAS getfattr -d -m "^lustre" $testfile 2> /dev/null | \
        grep "lustre.lov" || error "can't get lustre.lov from $testfile"
@@ -8031,8 +8056,8 @@ test_102c() {
 
        $RUNAS $MCREATE $testfile2
        $RUNAS setfattr -n lustre.lov -v $value $testfile2
-       local stripe_size=$($RUNAS $GETSTRIPE -S $testfile2)
-       local stripe_count=$($RUNAS $GETSTRIPE -c $testfile2)
+       local stripe_size=$($RUNAS $LFS getstripe -S $testfile2)
+       local stripe_count=$($RUNAS $LFS getstripe -c $testfile2)
        [ $stripe_size -eq 65536 ] || error "stripe size $stripe_size != 65536"
        [ $stripe_count -eq $STRIPECOUNT ] ||
                error "stripe count $stripe_count != $STRIPECOUNT"
@@ -8189,7 +8214,7 @@ test_102k() {
        local default_size=$($LFS getstripe -S $test_kdir)
        local default_count=$($LFS getstripe -c $test_kdir)
        local default_offset=$($LFS getstripe -i $test_kdir)
-       $SETSTRIPE -S 65536 -i 0 -c $OSTCOUNT $test_kdir ||
+       $LFS setstripe -S 65536 -i 0 -c $OSTCOUNT $test_kdir ||
                error 'dir setstripe failed'
        setfattr -n trusted.lov $test_kdir
        local stripe_size=$($LFS getstripe -S $test_kdir)
@@ -8596,7 +8621,6 @@ test_104b() {
        [ $RUNAS_ID -eq $UID ] &&
                skip_env "RUNAS_ID = UID = $UID -- skipping"
 
-       chmod 666 /dev/obd
        denied_cnt=$(($($RUNAS $LFS check servers 2>&1 |
                        grep "Permission denied" | wc -l)))
        if [ $denied_cnt -ne 0 ]; then
@@ -8881,7 +8905,7 @@ test_116a() { # was previously test_116()
                DIFF=$((threshold - DIFF2 + 2))
                DIFF2=$((MINV * DIFF / 100))
                echo "Fill $DIFF% remaining space in OST$MINI with ${DIFF2}KB"
-               $SETSTRIPE -i $MINI -c 1 $DIR/$tdir/OST${MINI} ||
+               $LFS setstripe -i $MINI -c 1 $DIR/$tdir/OST${MINI} ||
                        error "setstripe failed"
                DIFF=$((DIFF2 / 2048))
                i=0
@@ -8914,7 +8938,7 @@ test_116a() { # was previously test_116()
        MAXV1=$MAXV
 
        # now fill using QOS
-       $SETSTRIPE -c 1 $DIR/$tdir
+       $LFS setstripe -c 1 $DIR/$tdir
        FILL=$((FILL / 200))
        if [ $FILL -gt 600 ]; then
                FILL=600
@@ -8949,12 +8973,12 @@ test_116a() { # was previously test_116()
        UUID=$(lctl get_param -n lov.${FSNAME}-clilov-*.target_obd |
               awk '/'$MINI1': / {print $2; exit}')
        echo $UUID
-       MINC=$($GETSTRIPE --ost $UUID $DIR/$tdir | grep $DIR | wc -l)
+       MINC=$($LFS getstripe --ost $UUID $DIR/$tdir | grep $DIR | wc -l)
        echo "$MINC files created on smaller OST $MINI1"
        UUID=$(lctl get_param -n lov.${FSNAME}-clilov-*.target_obd |
               awk '/'$MAXI1': / {print $2; exit}')
        echo $UUID
-       MAXC=$($GETSTRIPE --ost $UUID $DIR/$tdir | grep $DIR | wc -l)
+       MAXC=$($LFS getstripe --ost $UUID $DIR/$tdir | grep $DIR | wc -l)
        echo "$MAXC files created on larger OST $MAXI1"
        if [[ $MINC -gt 0 ]]; then
                FILL=$((MAXC * 100 / MINC - 100))
@@ -9017,7 +9041,7 @@ reset_async() {
        FILE=$DIR/reset_async
 
        # Ensure all OSCs are cleared
-       $SETSTRIPE -c -1 $FILE
+       $LFS setstripe -c -1 $FILE
        dd if=/dev/zero of=$FILE bs=64k count=$OSTCOUNT
        sync
        rm $FILE
@@ -9452,7 +9476,7 @@ test_119b() # bug 11737
 {
        [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs"
 
-       $SETSTRIPE -c 2 $DIR/$tfile || error "setstripe failed"
+       $LFS setstripe -c 2 $DIR/$tfile || error "setstripe failed"
        dd if=/dev/zero of=$DIR/$tfile bs=1M count=1 seek=1 || error "dd failed"
        sync
        $MULTIOP $DIR/$tfile oO_RDONLY:O_DIRECT:r$((2048 * 1024)) ||
@@ -9477,7 +9501,7 @@ test_119d() # bug 15950
         MAX_RPCS_IN_FLIGHT=`$LCTL get_param -n osc.*OST0000-osc-[^mM]*.max_rpcs_in_flight`
         $LCTL set_param -n osc.*OST0000-osc-[^mM]*.max_rpcs_in_flight 1
         BSIZE=1048576
-        $SETSTRIPE $DIR/$tfile -i 0 -c 1 || error "setstripe failed"
+        $LFS setstripe $DIR/$tfile -i 0 -c 1 || error "setstripe failed"
         $DIRECTIO write $DIR/$tfile 0 1 $BSIZE || error "first directio failed"
         #define OBD_FAIL_OSC_DIO_PAUSE           0x40d
         lctl set_param fail_loc=0x40d
@@ -10111,7 +10135,7 @@ run_test 126 "check that the fsgid provided by the client is taken into account"
 test_127a() { # bug 15521
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
-       $SETSTRIPE -i 0 -c 1 $DIR/$tfile || error "setstripe failed"
+       $LFS setstripe -i 0 -c 1 $DIR/$tfile || error "setstripe failed"
        $LCTL set_param osc.*.stats=0
        FSIZE=$((2048 * 1024))
        dd if=/dev/zero of=$DIR/$tfile bs=$FSIZE count=1
@@ -10150,38 +10174,44 @@ run_test 127a "verify the client stats are sane"
 
 test_127b() { # bug LU-333
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
+       local name count samp unit min max sum sumsq
 
        $LCTL set_param llite.*.stats=0
-       FSIZE=65536 # sized fixed to match PAGE_SIZE for most clients
 
        # perform 2 reads and writes so MAX is different from SUM.
-       dd if=/dev/zero of=$DIR/$tfile bs=$FSIZE count=1
-       dd if=/dev/zero of=$DIR/$tfile bs=$FSIZE count=1
+       dd if=/dev/zero of=$DIR/$tfile bs=$PAGE_SIZE count=1
+       dd if=/dev/zero of=$DIR/$tfile bs=$PAGE_SIZE count=1
        cancel_lru_locks osc
-       dd if=$DIR/$tfile of=/dev/null bs=$FSIZE count=1
-       dd if=$DIR/$tfile of=/dev/null bs=$FSIZE count=1
-
-        $LCTL get_param llite.*.stats | grep samples > $TMP/${tfile}.tmp
-        while read NAME COUNT SAMP UNIT MIN MAX SUM SUMSQ; do
-                echo "got $COUNT $NAME"
-                eval $NAME=$COUNT || error "Wrong proc format"
-
-        case $NAME in
-                read_bytes)
-                        [ $COUNT -ne 2 ] && error "count is not 2: $COUNT"
-                        [ $MIN -ne $FSIZE ] && error "min is not $FSIZE: $MIN"
-                        [ $MAX -ne $FSIZE ] && error "max is incorrect: $MAX"
-                        [ $SUM -ne $((FSIZE * 2)) ] && error "sum is wrong: $SUM"
-                        ;;
-                write_bytes)
-                        [ $COUNT -ne 2 ] && error "count is not 2: $COUNT"
-                        [ $MIN -ne $FSIZE ] && error "min is not $FSIZE: $MIN"
-                        [ $MAX -ne $FSIZE ] && error "max is incorrect: $MAX"
-                        [ $SUM -ne $((FSIZE * 2)) ] && error "sum is wrong: $SUM"
-                        ;;
-                        *) ;;
-                esac
-        done < $TMP/${tfile}.tmp
+       dd if=$DIR/$tfile of=/dev/null bs=$PAGE_SIZE count=1
+       dd if=$DIR/$tfile of=/dev/null bs=$PAGE_SIZE count=1
+
+       $LCTL get_param llite.*.stats | grep samples > $TMP/$tfile.tmp
+       while read name count samp unit min max sum sumsq; do
+               echo "got $count $name"
+               eval $name=$count || error "Wrong proc format"
+
+               case $name in
+               read_bytes)
+                       [ $count -ne 2 ] && error "count is not 2: $count"
+                       [ $min -ne $PAGE_SIZE ] &&
+                               error "min is not $PAGE_SIZE: $min"
+                       [ $max -ne $PAGE_SIZE ] &&
+                               error "max is incorrect: $max"
+                       [ $sum -ne $((PAGE_SIZE * 2)) ] &&
+                               error "sum is wrong: $sum"
+                       ;;
+               write_bytes)
+                       [ $count -ne 2 ] && error "count is not 2: $count"
+                       [ $min -ne $PAGE_SIZE ] &&
+                               error "min is not $PAGE_SIZE: $min"
+                       [ $max -ne $PAGE_SIZE ] &&
+                               error "max is incorrect: $max"
+                       [ $sum -ne $((PAGE_SIZE * 2)) ] &&
+                               error "sum is wrong: $sum"
+                       ;;
+               *) ;;
+               esac
+       done < $TMP/$tfile.tmp
 
        #check that we actually got some stats
        [ "$read_bytes" ] || error "Missing read_bytes stats"
@@ -10308,20 +10338,20 @@ test_130a() {
        trap cleanup_130 EXIT RETURN
 
        local fm_file=$DIR/$tfile
-       $SETSTRIPE -S 65536 -c 1 $fm_file || error "setstripe on $fm_file"
+       $LFS setstripe -S 65536 -c 1 $fm_file || error "setstripe on $fm_file"
        dd if=/dev/zero of=$fm_file bs=65536 count=1 ||
                error "dd failed for $fm_file"
 
        # LU-1795: test filefrag/FIEMAP once, even if unsupported
        filefrag -ves $fm_file
        RC=$?
-       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+       [ "$(facet_fstype ost$(($($LFS getstripe -i $fm_file) + 1)))" = "zfs" ] &&
                skip_env "ORI-366/LU-1941: FIEMAP unimplemented on ZFS"
        [ $RC != 0 ] && error "filefrag $fm_file failed"
 
        filefrag_op=$(filefrag -ve -k $fm_file |
                        sed -n '/ext:/,/found/{/ext:/d; /found/d; p}')
-       lun=$($GETSTRIPE -i $fm_file)
+       lun=$($LFS getstripe -i $fm_file)
 
        start_blk=`echo $filefrag_op | cut -d: -f2 | cut -d. -f1`
        IFS=$'\n'
@@ -10359,9 +10389,9 @@ test_130b() {
        trap cleanup_130 EXIT RETURN
 
        local fm_file=$DIR/$tfile
-       $SETSTRIPE -S 65536 -c $OSTCOUNT $fm_file ||
+       $LFS setstripe -S 65536 -c $OSTCOUNT $fm_file ||
                        error "setstripe on $fm_file"
-       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+       [ "$(facet_fstype ost$(($($LFS getstripe -i $fm_file) + 1)))" = "zfs" ] &&
                skip_env "ORI-366/LU-1941: FIEMAP unimplemented on ZFS"
 
        dd if=/dev/zero of=$fm_file bs=1M count=$OSTCOUNT ||
@@ -10418,8 +10448,8 @@ test_130c() {
        trap cleanup_130 EXIT RETURN
 
        local fm_file=$DIR/$tfile
-       $SETSTRIPE -S 65536 -c 2 $fm_file || error "setstripe on $fm_file"
-       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+       $LFS setstripe -S 65536 -c 2 $fm_file || error "setstripe on $fm_file"
+       [ "$(facet_fstype ost$(($($LFS getstripe -i $fm_file) + 1)))" = "zfs" ] &&
                skip_env "ORI-366/LU-1941: FIEMAP unimplemented on ZFS"
 
        dd if=/dev/zero of=$fm_file seek=1 bs=1M count=1 ||
@@ -10483,12 +10513,12 @@ test_130d() {
        trap cleanup_130 EXIT RETURN
 
        local fm_file=$DIR/$tfile
-       $SETSTRIPE -S 65536 -c $OSTCOUNT $fm_file ||
+       $LFS setstripe -S 65536 -c $OSTCOUNT $fm_file ||
                        error "setstripe on $fm_file"
-       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+       [ "$(facet_fstype ost$(($($LFS getstripe -i $fm_file) + 1)))" = "zfs" ] &&
                skip_env "ORI-366/LU-1941: FIEMAP unimplemented on ZFS"
 
-       local actual_stripe_count=$($GETSTRIPE -c $fm_file)
+       local actual_stripe_count=$($LFS getstripe -c $fm_file)
        dd if=/dev/zero of=$fm_file bs=1M count=$actual_stripe_count ||
                error "dd failed on $fm_file"
 
@@ -10543,8 +10573,8 @@ test_130e() {
        trap cleanup_130 EXIT RETURN
 
        local fm_file=$DIR/$tfile
-       $SETSTRIPE -S 131072 -c 2 $fm_file || error "setstripe on $fm_file"
-       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+       $LFS setstripe -S 131072 -c 2 $fm_file || error "setstripe on $fm_file"
+       [ "$(facet_fstype ost$(($($LFS getstripe -i $fm_file) + 1)))" = "zfs" ] &&
                skip_env "ORI-366/LU-1941: FIEMAP unimplemented on ZFS"
 
        NUM_BLKS=512
@@ -10680,7 +10710,6 @@ check_stats() {
                 ;;
        *) error "Wrong facet '$facet'" ;;
        esac
-       echo $res
        [ "$res" ] || error "The counter for $op on $facet was not incremented"
        # if the argument $3 is zero, it means any stat increment is ok.
        if [[ $want -gt 0 ]]; then
@@ -10739,6 +10768,8 @@ test_133a() {
 run_test 133a "Verifying MDT stats ========================================"
 
 test_133b() {
+       local res
+
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
        remote_ost_nodsh && skip "remote OST with nodsh"
        remote_mds_nodsh && skip "remote MDS with nodsh"
@@ -10771,9 +10802,33 @@ test_133b() {
        # Sleep to avoid a cached response.
        #define OBD_STATFS_CACHE_SECONDS 1
        sleep 2
+       do_facet $SINGLEMDS $LCTL set_param mdt.*.md_stats=clear
+       do_facet ost1 $LCTL set_param obdfilter.*.exports.*.stats=clear
        $LFS df || error "lfs failed"
        check_stats $SINGLEMDS "statfs" 1
 
+       # check aggregated statfs (LU-10018)
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.54) ] &&
+               return 0
+       [ $(lustre_version_code client) -lt $(version_code 2.11.54) ] &&
+               return 0
+       sleep 2
+       do_facet $SINGLEMDS $LCTL set_param mdt.*.md_stats=clear
+       do_facet ost1 $LCTL set_param obdfilter.*.exports.*.stats=clear
+       df $DIR
+       check_stats $SINGLEMDS "statfs" 1
+
+       # We want to check that the client didn't send OST_STATFS to
+       # ost1 but the MDT also uses OST_STATFS for precreate. So some
+       # extra care is needed here.
+       if remote_mds; then
+               local nid=$($LCTL list_nids | head -1 | sed  "s/\./\\\./g")
+               local param="obdfilter.$FSNAME-OST0000.exports.'$nid'.stats"
+
+               res=$(do_facet ost1 $LCTL get_param $param | grep statfs)
+               [ "$res" ] && error "OST got STATFS"
+       fi
+
        return 0
 }
 run_test 133b "Verifying extra MDT stats =================================="
@@ -10788,7 +10843,7 @@ test_133c() {
        test_mkdir -p $testdir
 
        # verify obdfilter stats.
-       $SETSTRIPE -c 1 -i 0 $testdir/$tfile
+       $LFS setstripe -c 1 -i 0 $testdir/$tfile
        sync
        cancel_lru_locks osc
        wait_delete_completed
@@ -10956,7 +11011,7 @@ test_133e() {
 
        mkdir -p ${testdir} || error "mkdir failed"
 
-       $SETSTRIPE -c 1 -i 0 ${testdir}/${tfile}
+       $LFS setstripe -c 1 -i 0 ${testdir}/${tfile}
 
        for ctr in {write,read}_bytes; do
                sync
@@ -11259,7 +11314,7 @@ function roc_hit_init() {
        test_mkdir $dir
        #use setstripe to do a write to every ost
        for i in $(seq 0 $((OSTCOUNT-1))); do
-               $SETSTRIPE -c 1 -i $i $dir || error "$SETSTRIPE $file failed"
+               $LFS setstripe -c 1 -i $i $dir || error "$LFS setstripe $file failed"
                dd if=/dev/urandom of=$file bs=4k count=4 2>&1 > /dev/null
                idx=$(printf %04x $i)
                BEFORE=$(get_osd_param $list *OST*$idx stats |
@@ -11825,7 +11880,7 @@ test_155_big_load() {
        [ $MAXV -le $large_file_size ] &&
                skip_env "max available OST size needs > $large_file_size KB"
 
-       $SETSTRIPE $file -c 1 -i $MAXI || error "$SETSTRIPE $file failed"
+       $LFS setstripe $file -c 1 -i $MAXI || error "$LFS setstripe $file failed"
 
        dd if=/dev/urandom of=$temp bs=$large_file_size count=1k ||
                error "dd of=$temp bs=$large_file_size count=1k failed"
@@ -13415,18 +13470,18 @@ test_184a() {
        ref2=/etc/group
        file1=$dir0/f1
        file2=$dir0/f2
-       $SETSTRIPE -c1 $file1
+       $LFS setstripe -c1 $file1
        cp $ref1 $file1
-       $SETSTRIPE -c2 $file2
+       $LFS setstripe -c2 $file2
        cp $ref2 $file2
-       gen1=$($GETSTRIPE -g $file1)
-       gen2=$($GETSTRIPE -g $file2)
+       gen1=$($LFS getstripe -g $file1)
+       gen2=$($LFS getstripe -g $file2)
 
        $LFS swap_layouts $file1 $file2 || error "swap of file layout failed"
-       gen=$($GETSTRIPE -g $file1)
+       gen=$($LFS getstripe -g $file1)
        [[ $gen1 != $gen ]] ||
                "Layout generation on $file1 does not change"
-       gen=$($GETSTRIPE -g $file2)
+       gen=$($LFS getstripe -g $file2)
        [[ $gen2 != $gen ]] ||
                "Layout generation on $file2 does not change"
 
@@ -13448,12 +13503,12 @@ test_184b() {
        dir1=$dir0/d1
        dir2=$dir0/d2
        mkdir $dir1 $dir2
-       $SETSTRIPE -c1 $file1
-       $SETSTRIPE -c2 $file2
-       $SETSTRIPE -c1 $file3
+       $LFS setstripe -c1 $file1
+       $LFS setstripe -c2 $file2
+       $LFS setstripe -c1 $file3
        chown $RUNAS_ID $file3
-       gen1=$($GETSTRIPE -g $file1)
-       gen2=$($GETSTRIPE -g $file2)
+       gen1=$($LFS getstripe -g $file1)
+       gen2=$($LFS getstripe -g $file2)
 
        $LFS swap_layouts $dir1 $dir2 &&
                error "swap of directories layouts should fail"
@@ -13746,7 +13801,7 @@ default_attr() {
 
 # usage: check_default_stripe_attr
 check_default_stripe_attr() {
-       ACTUAL=$($GETSTRIPE $* $DIR/$tdir)
+       ACTUAL=$($LFS getstripe $* $DIR/$tdir)
        case $1 in
        --stripe-count|-c)
                [ -n "$2" ] && EXPECTED=0 || EXPECTED=$(default_attr count);;
@@ -13764,7 +13819,7 @@ check_default_stripe_attr() {
 
 test_204a() {
        test_mkdir $DIR/$tdir
-       $SETSTRIPE --stripe-count 0 --stripe-size 0 --stripe-index -1 $DIR/$tdir
+       $LFS setstripe --stripe-count 0 --stripe-size 0 --stripe-index -1 $DIR/$tdir
 
        check_default_stripe_attr --stripe-count
        check_default_stripe_attr --stripe-size
@@ -13774,7 +13829,7 @@ run_test 204a "Print default stripe attributes"
 
 test_204b() {
        test_mkdir $DIR/$tdir
-       $SETSTRIPE --stripe-count 1 $DIR/$tdir
+       $LFS setstripe --stripe-count 1 $DIR/$tdir
 
        check_default_stripe_attr --stripe-size
        check_default_stripe_attr --stripe-index
@@ -13783,7 +13838,7 @@ run_test 204b "Print default stripe size and offset"
 
 test_204c() {
        test_mkdir $DIR/$tdir
-       $SETSTRIPE --stripe-size 65536 $DIR/$tdir
+       $LFS setstripe --stripe-size 65536 $DIR/$tdir
 
        check_default_stripe_attr --stripe-count
        check_default_stripe_attr --stripe-index
@@ -13792,7 +13847,7 @@ run_test 204c "Print default stripe count and offset"
 
 test_204d() {
        test_mkdir $DIR/$tdir
-       $SETSTRIPE --stripe-index 0 $DIR/$tdir
+       $LFS setstripe --stripe-index 0 $DIR/$tdir
 
        check_default_stripe_attr --stripe-count
        check_default_stripe_attr --stripe-size
@@ -13801,7 +13856,7 @@ run_test 204d "Print default stripe count and size"
 
 test_204e() {
        test_mkdir $DIR/$tdir
-       $SETSTRIPE -d $DIR/$tdir
+       $LFS setstripe -d $DIR/$tdir
 
        check_default_stripe_attr --stripe-count --raw
        check_default_stripe_attr --stripe-size --raw
@@ -13811,7 +13866,7 @@ run_test 204e "Print raw stripe attributes"
 
 test_204f() {
        test_mkdir $DIR/$tdir
-       $SETSTRIPE --stripe-count 1 $DIR/$tdir
+       $LFS setstripe --stripe-count 1 $DIR/$tdir
 
        check_default_stripe_attr --stripe-size --raw
        check_default_stripe_attr --stripe-index --raw
@@ -13820,7 +13875,7 @@ run_test 204f "Print raw stripe size and offset"
 
 test_204g() {
        test_mkdir $DIR/$tdir
-       $SETSTRIPE --stripe-size 65536 $DIR/$tdir
+       $LFS setstripe --stripe-size 65536 $DIR/$tdir
 
        check_default_stripe_attr --stripe-count --raw
        check_default_stripe_attr --stripe-index --raw
@@ -13829,7 +13884,7 @@ run_test 204g "Print raw stripe count and offset"
 
 test_204h() {
        test_mkdir $DIR/$tdir
-       $SETSTRIPE --stripe-index 0 $DIR/$tdir
+       $LFS setstripe --stripe-index 0 $DIR/$tdir
 
        check_default_stripe_attr --stripe-count --raw
        check_default_stripe_attr --stripe-size --raw
@@ -13908,8 +13963,8 @@ verify_jobstats() {
 jobstats_set() {
        local new_jobenv=$1
 
-       do_facet mgs $LCTL conf_param $FSNAME.sys.jobid_var=$new_jobenv
-       wait_update $HOSTNAME "$LCTL get_param -n jobid_var" $new_jobenv
+       set_persistent_param_and_check client "jobid_var" \
+               "$FSNAME.sys.jobid_var" $new_jobenv
 }
 
 test_205() { # Job stats
@@ -13925,9 +13980,13 @@ test_205() { # Job stats
 
        local old_jobenv=$($LCTL get_param -n jobid_var)
        [ $old_jobenv != $JOBENV ] && jobstats_set $JOBENV
-       stack_trap "do_facet mgs \
-               $LCTL conf_param $FSNAME.sys.jobid_var=$old_jobenv" EXIT
 
+       if [[ $PERM_CMD == *"set_param -P"* ]]; then
+               stack_trap "do_facet mgs $PERM_CMD jobid_var=$old_jobenv" EXIT
+       else
+               stack_trap "do_facet mgs $PERM_CMD \
+                       $FSNAME.sys.jobid_var=$old_jobenv" EXIT
+       fi
        changelog_register
 
        local old_interval=$(do_facet $SINGLEMDS lctl get_param -n \
@@ -13959,7 +14018,7 @@ test_205() { # Job stats
        verify_jobstats "$cmd" "$SINGLEMDS"
        # create all files on OST0000 so verify_jobstats can find OST stats
        # open & close
-       cmd="$SETSTRIPE -i 0 -c 1 $DIR/$tfile"
+       cmd="$LFS setstripe -i 0 -c 1 $DIR/$tfile"
        verify_jobstats "$cmd" "$SINGLEMDS"
        # setattr
        cmd="touch $DIR/$tfile"
@@ -14015,7 +14074,7 @@ run_test 205 "Verify job stats"
 # LU-1480, LU-1773 and LU-1657
 test_206() {
        mkdir -p $DIR/$tdir
-       $SETSTRIPE -c -1 $DIR/$tdir
+       $LFS setstripe -c -1 $DIR/$tdir
 #define OBD_FAIL_LOV_INIT 0x1403
        $LCTL set_param fail_loc=0xa0001403
        $LCTL set_param fail_val=1
@@ -14422,7 +14481,7 @@ test_220() { #LU-325
        create_pool $FSNAME.$TESTNAME || return 1
        do_facet mgs $LCTL pool_add $FSNAME.$TESTNAME $OST || return 2
 
-       $SETSTRIPE $DIR/$tdir -i $OSTIDX -c 1 -p $FSNAME.$TESTNAME
+       $LFS setstripe $DIR/$tdir -i $OSTIDX -c 1 -p $FSNAME.$TESTNAME
 
        MDSOBJS=$((last_id - next_id))
        echo "preallocated objects on MDS is $MDSOBJS" "($last_id - $next_id)"
@@ -14559,17 +14618,15 @@ test_224c() { # LU-6441
                                osc.*.max_pages_per_rpc)
        local at_max=$($LCTL get_param -n at_max)
        local timeout=$($LCTL get_param -n timeout)
-       local test_at="$LCTL get_param -n at_max"
+       local test_at="at_max"
        local param_at="$FSNAME.sys.at_max"
-       local test_timeout="$LCTL get_param -n timeout"
+       local test_timeout="timeout"
        local param_timeout="$FSNAME.sys.timeout"
 
        $LCTL set_param -n osc.*.max_pages_per_rpc=1024
 
-       set_conf_param_and_check client "$test_at" "$param_at" 0 ||
-               error "conf_param at_max=0 failed"
-       set_conf_param_and_check client "$test_timeout" "$param_timeout" 5 ||
-               error "conf_param timeout=5 failed"
+       set_persistent_param_and_check client "$test_at" "$param_at" 0
+       set_persistent_param_and_check client "$test_timeout" "$param_timeout" 5
 
        #define OBD_FAIL_PTLRPC_CLIENT_BULK_CB3   0x520
        do_facet ost1 $LCTL set_param fail_loc=0x520
@@ -14578,10 +14635,9 @@ test_224c() { # LU-6441
        sync
        do_facet ost1 $LCTL set_param fail_loc=0
 
-       set_conf_param_and_check client "$test_at" "$param_at" $at_max ||
-               error "conf_param at_max=$at_max failed"
-       set_conf_param_and_check client "$test_timeout" "$param_timeout" \
-               $timeout || error "conf_param timeout=$timeout failed"
+       set_persistent_param_and_check client "$test_at" "$param_at" $at_max
+       set_persistent_param_and_check client "$test_timeout" "$param_timeout" \
+               $timeout
 
        $LCTL set_param -n $pages_per_rpc
        restore_lustre_params < $p
@@ -14876,12 +14932,13 @@ test_229() { # LU-2482, LU-3448
        $MULTIOP $DIR/$tfile H2c ||
                error "failed to create file with released layout"
 
-       $GETSTRIPE -v $DIR/$tfile
+       $LFS getstripe -v $DIR/$tfile
 
-       local pattern=$($GETSTRIPE -L $DIR/$tfile)
+       local pattern=$($LFS getstripe -L $DIR/$tfile)
        [ X"$pattern" = X"released" ] || error "pattern error ($pattern)"
 
-       local stripe_count=$($GETSTRIPE -c $DIR/$tfile) || error "getstripe"
+       local stripe_count=$($LFS getstripe -c $DIR/$tfile) ||
+               error "getstripe"
        [ $stripe_count -eq 2 ] || error "stripe count not 2 ($stripe_count)"
        stat $DIR/$tfile || error "failed to stat released file"
 
@@ -14959,8 +15016,8 @@ test_230b() {
        local old_file_mode=$(stat -c%f $migrate_dir/$tfile)
 
        mkdir -p $migrate_dir/dir_default_stripe2
-       $SETSTRIPE -c 2 $migrate_dir/dir_default_stripe2
-       $SETSTRIPE -c 2 $migrate_dir/${tfile}_stripe2
+       $LFS setstripe -c 2 $migrate_dir/dir_default_stripe2
+       $LFS setstripe -c 2 $migrate_dir/${tfile}_stripe2
 
        mkdir -p $other_dir
        ln $migrate_dir/$tfile $other_dir/luna
@@ -15385,12 +15442,91 @@ test_230i() {
 }
 run_test 230i "lfs migrate -m tolerates trailing slashes"
 
+test_230j() {
+       [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs"
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.52) ] &&
+               skip "Need MDS version at least 2.11.52"
+
+       $LFS mkdir -m 0 -c 1 $DIR/$tdir || error "mkdir $tdir failed"
+       $LFS setstripe -E 1M -L mdt $DIR/$tdir/$tfile ||
+               error "create $tfile failed"
+       cat /etc/passwd > $DIR/$tdir/$tfile
+
+       $LFS migrate -m 1 $DIR/$tdir
+
+       cmp /etc/passwd $DIR/$tdir/$tfile ||
+               error "DoM file mismatch after migration"
+}
+run_test 230j "DoM file data not changed after dir migration"
+
+test_230k() {
+       [ $MDSCOUNT -lt 4 ] && skip "needs >= 4 MDTs"
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.56) ] &&
+               skip "Need MDS version at least 2.11.56"
+
+       local total=20
+       local files_on_starting_mdt=0
+
+       $LFS mkdir -i -1 -c 2 $DIR/$tdir || error "mkdir failed"
+       $LFS getdirstripe $DIR/$tdir
+       for i in $(seq $total); do
+               echo $((i*i - i)) > $DIR/$tdir/$tfile.$i || error "write failed"
+               [[ $($LFS getstripe -m $DIR/$tdir/$tfile.$i) -eq 0 ]] &&
+                       files_on_starting_mdt=$((files_on_starting_mdt + 1))
+       done
+
+       echo "$files_on_starting_mdt files on MDT0"
+
+       $LFS migrate -m 1,3 $DIR/$tdir || error "migrate -m 1,3 failed"
+       $LFS getdirstripe $DIR/$tdir
+
+       files_on_starting_mdt=0
+       for i in $(seq $total); do
+               $(echo $((i*i - i)) | cmp $DIR/$tdir/$tfile.$i -) ||
+                       error "file $tfile.$i mismatch after migration"
+               [[ $($LFS getstripe -m $DIR/$tdir/$tfile.$i) -eq 1 ]] &&
+                       files_on_starting_mdt=$((files_on_starting_mdt + 1))
+       done
+
+       echo "$files_on_starting_mdt files on MDT1 after migration"
+       [[ $files_on_starting_mdt -eq $total ]] && error "all files on MDT1"
+
+       $LFS migrate -m 0 -c 2 $DIR/$tdir || error "migrate -m 0 -c 2 failed"
+       $LFS getdirstripe $DIR/$tdir
+
+       files_on_starting_mdt=0
+       for i in $(seq $total); do
+               $(echo $((i*i - i)) | cmp $DIR/$tdir/$tfile.$i -) ||
+                       error "file $tfile.$i mismatch after 2nd migration"
+               [[ $($LFS getstripe -m $DIR/$tdir/$tfile.$i) -eq 0 ]] &&
+                       files_on_starting_mdt=$((files_on_starting_mdt + 1))
+       done
+
+       echo "$files_on_starting_mdt files on MDT0 after 2nd migration"
+       [[ $files_on_starting_mdt -eq $total ]] && error "all files on MDT0"
+
+       true
+}
+run_test 230k "file data not changed after dir migration"
+
+test_230l() {
+       [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs"
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.56) ] &&
+               skip "Need MDS version at least 2.11.56"
+
+       $LFS mkdir -i 0 -c 1 $DIR/$tdir || error "mkdir failed"
+       createmany -o $DIR/$tdir/f___________________________________ 1000 ||
+               error "create files under remote dir failed $i"
+       $LFS migrate -m 1 $DIR/$tdir || error "migrate failed"
+}
+run_test 230l "readdir between MDTs won't crash"
+
 test_231a()
 {
        # For simplicity this test assumes that max_pages_per_rpc
        # is the same across all OSCs
        local max_pages=$($LCTL get_param -n osc.*.max_pages_per_rpc | head -n1)
-       local bulk_size=$((max_pages * 4096))
+       local bulk_size=$((max_pages * PAGE_SIZE))
        local brw_size=$(do_facet ost1 $LCTL get_param -n obdfilter.*.brw_size |
                                       head -n 1)
 
@@ -15561,9 +15697,9 @@ test_236() {
        local file2=$DIR/$tdir/f2
 
        test_mkdir -c1 $DIR/$tdir
-       $SETSTRIPE -c 1 $file1 || error "cannot setstripe on '$file1': rc = $?"
+       $LFS setstripe -c 1 $file1 || error "cannot setstripe on '$file1': rc = $?"
        cp $ref1 $file1 || error "cp $ref1 $file1 failed: rc = $?"
-       $SETSTRIPE -c 2 $file2 || error "cannot setstripe on '$file2': rc = $?"
+       $LFS setstripe -c 2 $file2 || error "cannot setstripe on '$file2': rc = $?"
        cp $ref2 $file2 || error "cp $ref2 $file2 failed: rc = $?"
        local fd=$(free_fd)
        local cmd="exec $fd<>$file2"
@@ -15580,18 +15716,6 @@ test_236() {
 }
 run_test 236 "Layout swap on open unlinked file"
 
-# test to verify file handle related system calls
-# (name_to_handle_at/open_by_handle_at)
-# The new system calls are supported in glibc >= 2.14.
-
-test_237() {
-       echo "Test file_handle syscalls" > $DIR/$tfile ||
-               error "write failed"
-       check_fhandle_syscalls $DIR/$tfile ||
-               error "check_fhandle_syscalls failed"
-}
-run_test 237 "Verify name_to_handle_at/open_by_handle_at syscalls"
-
 # LU-4659 linkea consistency
 test_238() {
        local server_version=$(lustre_version_code $SINGLEMDS)
@@ -15681,36 +15805,48 @@ test_240() {
 run_test 240 "race between ldlm enqueue and the connection RPC (no ASSERT)"
 
 test_241_bio() {
-       for LOOP in $(seq $1); do
-               dd if=$DIR/$tfile of=/dev/null bs=40960 count=1 2>/dev/null
+       local count=$1
+       local bsize=$2
+
+       for LOOP in $(seq $count); do
+               dd if=$DIR/$tfile of=/dev/null bs=$bsize count=1 2>/dev/null
                cancel_lru_locks $OSC || true
        done
 }
 
 test_241_dio() {
+       local count=$1
+       local bsize=$2
+
        for LOOP in $(seq $1); do
-               dd if=$DIR/$tfile of=/dev/null bs=40960 count=1 \
-                                               iflag=direct 2>/dev/null
+               dd if=$DIR/$tfile of=/dev/null bs=$bsize count=1 iflag=direct \
+                       2>/dev/null
        done
 }
 
 test_241a() { # was test_241
-       dd if=/dev/zero of=$DIR/$tfile count=1 bs=40960
+       local bsize=$PAGE_SIZE
+
+       (( bsize < 40960 )) && bsize=40960
+       dd if=/dev/zero of=$DIR/$tfile count=1 bs=$bsize
        ls -la $DIR/$tfile
        cancel_lru_locks $OSC
-       test_241_bio 1000 &
+       test_241_bio 1000 $bsize &
        PID=$!
-       test_241_dio 1000
+       test_241_dio 1000 $bsize
        wait $PID
 }
 run_test 241a "bio vs dio"
 
 test_241b() {
-       dd if=/dev/zero of=$DIR/$tfile count=1 bs=40960
+       local bsize=$PAGE_SIZE
+
+       (( bsize < 40960 )) && bsize=40960
+       dd if=/dev/zero of=$DIR/$tfile count=1 bs=$bsize
        ls -la $DIR/$tfile
-       test_241_dio 1000 &
+       test_241_dio 1000 $bsize &
        PID=$!
-       test_241_dio 1000
+       test_241_dio 1000 $bsize
        wait $PID
 }
 run_test 241b "dio vs dio"
@@ -15937,7 +16073,7 @@ test_249() { # LU-7890
                skip "Need at least version 2.8.54"
 
        rm -f $DIR/$tfile
-       $SETSTRIPE -c 1 $DIR/$tfile
+       $LFS setstripe -c 1 $DIR/$tfile
        # Offset 2T == 4k * 512M
        dd if=/dev/zero of=$DIR/$tfile bs=4k count=1 seek=512M ||
                error "dd to 2T offset failed"
@@ -15945,10 +16081,10 @@ test_249() { # LU-7890
 run_test 249 "Write above 2T file size"
 
 test_250() {
-       [ "$(facet_fstype ost$(($($GETSTRIPE -i $DIR/$tfile) + 1)))" = "zfs" ] \
+       [ "$(facet_fstype ost$(($($LFS getstripe -i $DIR/$tfile) + 1)))" = "zfs" ] \
         && skip "no 16TB file size limit on ZFS"
 
-       $SETSTRIPE -c 1 $DIR/$tfile
+       $LFS setstripe -c 1 $DIR/$tfile
        # ldiskfs extent file size limit is (16TB - 4KB - 1) bytes
        local size=$((16 * 1024 * 1024 * 1024 * 1024 - 4096 - 1))
        $TRUNCATE $DIR/$tfile $size || error "truncate $tfile to $size failed"
@@ -15959,7 +16095,7 @@ test_250() {
 run_test 250 "Write above 16T limit"
 
 test_251() {
-       $SETSTRIPE -c -1 -S 1048576 $DIR/$tfile
+       $LFS setstripe -c -1 -S 1048576 $DIR/$tfile
 
        #define OBD_FAIL_LLITE_LOST_LAYOUT 0x1407
        #Skip once - writing the first stripe will succeed
@@ -16092,7 +16228,7 @@ test_253() {
                lov.$FSNAME-*.pools.$TESTNAME | sort -u |
                grep $ost_name" "$ost_name""_UUID" $((TIMEOUT/2)) ||
                error "Client can not see the pool"
-       $SETSTRIPE $DIR/$tdir -i $ostidx -c 1 -p $FSNAME.$TESTNAME ||
+       $LFS setstripe $DIR/$tdir -i $ostidx -c 1 -p $FSNAME.$TESTNAME ||
                error "Setstripe failed"
 
        dd if=/dev/zero of=$DIR/$tdir/0 bs=1M count=10
@@ -16465,7 +16601,7 @@ test_255c() {
        local rc
 
        test_mkdir -p $DIR/$tdir
-       $SETSTRIPE -i 0 $DIR/$tdir
+       $LFS setstripe -i 0 $DIR/$tdir
 
        #test 10 returns only success/failure
        i=10
@@ -16700,7 +16836,7 @@ run_test 260 "Check mdc_close fail"
 ### Data-on-MDT sanity tests ###
 test_270a() {
        [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
-               skip "Need MDS version at least 2.10.55"
+               skip "Need MDS version at least 2.10.55 for DoM"
 
        # create DoM file
        local dom=$DIR/$tdir/dom_file
@@ -16709,14 +16845,13 @@ test_270a() {
        mkdir -p $DIR/$tdir
 
        # basic checks for DoM component creation
-       $LFS setstripe -E 1024K -E 1024K -L mdt $dom 2>/dev/null &&
+       $LFS setstripe -E 1024K -E 2048K -L mdt $dom 2>/dev/null &&
                error "Can set MDT layout to non-first entry"
 
-       $LFS setstripe -E 1024K -L mdt -E 1024K -L mdt $dom 2>/dev/null &&
+       $LFS setstripe -E 1024K -L mdt -E 2048K -L mdt $dom 2>/dev/null &&
                error "Can define multiple entries as MDT layout"
 
-       $LFS setstripe -E 1M -L mdt $dom ||
-               error "Can't create DoM layout"
+       $LFS setstripe -E 1M -L mdt $dom || error "Can't create DoM layout"
 
        [ $($LFS getstripe -L $dom) == "mdt" ] || error "bad pattern"
        [ $($LFS getstripe -c $dom) == 0 ] || error "bad stripe count"
@@ -16728,46 +16863,61 @@ test_270a() {
        local space_check=1
 
        # Skip free space checks with ZFS
-       if [ "$(facet_fstype $facet)" == "zfs" ]; then
-               space_check=0
-       fi
+       [ "$(facet_fstype $facet)" == "zfs" ] && space_check=0
 
        # write
        sync
+       local size_tmp=$((65536 * 3))
        local mdtfree1=$(do_facet $facet \
-               lctl get_param -n osd*.*$mdtname.kbytesfree)
-       dd if=/dev/urandom of=$tmp bs=1024 count=100
+                        lctl get_param -n osd*.*$mdtname.kbytesfree)
+
+       dd if=/dev/urandom of=$tmp bs=1024 count=$((size_tmp / 1024))
        # check also direct IO along write
-       dd if=$tmp of=$dom bs=102400 count=1 oflag=direct
+       # IO size must be a multiple of PAGE_SIZE on all platforms (ARM=64KB)
+       dd if=$tmp of=$dom bs=65536 count=$((size_tmp / 65536)) oflag=direct
        sync
        cmp $tmp $dom || error "file data is different"
-       [ $(stat -c%s $dom) == 102400 ] || error "bad size after write"
+       [ $(stat -c%s $dom) == $size_tmp ] ||
+               error "bad size after write: $(stat -c%s $dom) != $size_tmp"
        if [ $space_check == 1 ]; then
                local mdtfree2=$(do_facet $facet \
-                               lctl get_param -n osd*.*$mdtname.kbytesfree)
-               [ $(($mdtfree1 - $mdtfree2)) -ge 102 ] ||
-                       error "MDT free space is wrong after write"
+                                lctl get_param -n osd*.*$mdtname.kbytesfree)
+
+               # increase in usage from by $size_tmp
+               [ $(($mdtfree1 - $mdtfree2)) -ge $((size_tmp / 1024)) ] ||
+                       error "MDT free space wrong after write: " \
+                             "$mdtfree1 >= $mdtfree2 + $size_tmp/1024"
        fi
 
        # truncate
-       $TRUNCATE $dom 10000
-       [ $(stat -c%s $dom) == 10000 ] || error "bad size after truncate"
+       local size_dom=10000
+
+       $TRUNCATE $dom $size_dom
+       [ $(stat -c%s $dom) == $size_dom ] ||
+               error "bad size after truncate: $(stat -c%s $dom) != $size_dom"
        if [ $space_check == 1 ]; then
                mdtfree1=$(do_facet $facet \
                                lctl get_param -n osd*.*$mdtname.kbytesfree)
-               [ $(($mdtfree1 - $mdtfree2)) -ge 92 ] ||
-                       error "MDT free space is wrong after truncate"
+               # decrease in usage from $size_tmp to new $size_dom
+               [ $(($mdtfree1 - $mdtfree2)) -ge \
+                 $(((size_tmp - size_dom) / 1024)) ] ||
+                       error "MDT free space is wrong after truncate: " \
+                             "$mdtfree1 >= $mdtfree2 + ($size_tmp - $size_dom) / 1024"
        fi
 
        # append
        cat $tmp >> $dom
        sync
-       [ $(stat -c%s $dom) == 112400 ] || error "bad size after append"
+       size_dom=$((size_dom + size_tmp))
+       [ $(stat -c%s $dom) == $size_dom ] ||
+               error "bad size after append: $(stat -c%s $dom) != $size_dom"
        if [ $space_check == 1 ]; then
                mdtfree2=$(do_facet $facet \
                                lctl get_param -n osd*.*$mdtname.kbytesfree)
-               [ $(($mdtfree1 - $mdtfree2)) -ge 102 ] ||
-                       error "MDT free space is wrong after append"
+               # increase in usage by $size_tmp from previous
+               [ $(($mdtfree1 - $mdtfree2)) -ge $((size_tmp / 1024)) ] ||
+                       error "MDT free space is wrong after append: " \
+                             "$mdtfree1 >= $mdtfree2 + $size_tmp/1024"
        fi
 
        # delete
@@ -16775,22 +16925,25 @@ test_270a() {
        if [ $space_check == 1 ]; then
                mdtfree1=$(do_facet $facet \
                                lctl get_param -n osd*.*$mdtname.kbytesfree)
-               [ $(($mdtfree1 - $mdtfree2)) -ge 112 ] ||
-                       error "MDT free space is wrong after removal"
+               # decrease in usage by $size_dom from previous
+               [ $(($mdtfree1 - $mdtfree2)) -ge $((size_dom / 1024)) ] ||
+                       error "MDT free space is wrong after removal: " \
+                             "$mdtfree1 >= $mdtfree2 + $size_dom/1024"
        fi
 
        # combined striping
        $LFS setstripe -E 1024K -L mdt -E EOF $dom ||
                error "Can't create DoM + OST striping"
 
-       dd if=/dev/urandom of=$tmp bs=1024 count=2000
+       size_tmp=2031616 # must be a multiple of PAGE_SIZE=65536 on ARM
+       dd if=/dev/urandom of=$tmp bs=1024 count=$((size_tmp / 1024))
        # check also direct IO along write
-       dd if=$tmp of=$dom bs=102400 count=20 oflag=direct
+       dd if=$tmp of=$dom bs=65536 count=$((size_tmp / 65536)) oflag=direct
        sync
        cmp $tmp $dom || error "file data is different"
-       [ $(stat -c%s $dom) == 2048000 ] || error "bad size after write"
-       rm $dom
-       rm $tmp
+       [ $(stat -c%s $dom) == $size_tmp ] ||
+               error "bad size after write: $(stat -c%s $dom) != $size_tmp"
+       rm $dom $tmp
 
        return 0
 }
@@ -16830,7 +16983,7 @@ test_270c() {
 
        # check files inherit DoM EA
        touch $DIR/$tdir/first
-       [ $($GETSTRIPE -L $DIR/$tdir/first) == "mdt" ] ||
+       [ $($LFS getstripe -L $DIR/$tdir/first) == "mdt" ] ||
                error "bad pattern"
        [ $($LFS getstripe -c $DIR/$tdir/first) == 0 ] ||
                error "bad stripe count"
@@ -17008,9 +17161,8 @@ test_271a() {
        lctl set_param -n mdc.*.stats=clear
        dd if=/dev/zero of=$dom bs=4096 count=1 || return 1
        cat $dom > /dev/null
-       local reads=$(lctl get_param -n mdc.*.stats |
-                       awk '/ost_read/ {print $2}')
-       [ -z $reads ] || error "Unexpected $reads READ RPCs"
+       local reads=$(lctl get_param -n mdc.*.stats | grep -c ost_read)
+       [ $reads -eq 0 ] || error "Unexpected $reads READ RPCs"
        ls $dom
        rm -f $dom
 }
@@ -17032,9 +17184,8 @@ test_271b() {
        $CHECKSTAT -t file -s 4096 $dom || error "stat #1 fails"
        # second stat to check size is cached on client
        $CHECKSTAT -t file -s 4096 $dom || error "stat #2 fails"
-       local gls=$(lctl get_param -n mdc.*.stats |
-                       awk '/ldlm_glimpse/ {print $2}')
-       [ -z $gls ] || error "Unexpected $gls glimpse RPCs"
+       local gls=$(lctl get_param -n mdc.*.stats | grep -c ldlm_glimpse)
+       [ $gls -eq 0 ] || error "Unexpected $gls glimpse RPCs"
        rm -f $dom
 }
 run_test 271b "DoM: no glimpse RPC for stat (DoM only file)"
@@ -17056,16 +17207,27 @@ test_271ba() {
        $CHECKSTAT -t file -s 2097152 $dom || error "stat"
        # second stat to check size is cached on client
        $CHECKSTAT -t file -s 2097152 $dom || error "stat"
-       local gls=$(lctl get_param -n mdc.*.stats |
-                       awk '/ldlm_glimpse/ {print $2}')
-       [ -z $gls ] || error "Unexpected $gls glimpse RPCs"
-       local gls=$(lctl get_param -n osc.*.stats |
-                       awk '/ldlm_glimpse/ {print $2}')
-       [ -z $gls ] || error "Unexpected $gls OSC glimpse RPCs"
+       local gls=$(lctl get_param -n mdc.*.stats | grep -c ldlm_glimpse)
+       [ $gls == 0 ] || error "Unexpected $gls glimpse RPCs"
+       local gls=$(lctl get_param -n osc.*.stats | grep -c ldlm_glimpse)
+       [ $gls == 0 ] || error "Unexpected $gls OSC glimpse RPCs"
        rm -f $dom
 }
 run_test 271ba "DoM: no glimpse RPC for stat (combined file)"
 
+
+get_mdc_stats() {
+       local mdtidx=$1
+       local param=$2
+       local mdt=MDT$(printf %04x $mdtidx)
+
+       if [ -z $param ]; then
+               lctl get_param -n mdc.*$mdt*.stats
+       else
+               lctl get_param -n mdc.*$mdt*.stats | awk "/$param/"'{print $2}'
+       fi
+}
+
 test_271c() {
        [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
                skip "Need MDS version at least 2.10.55"
@@ -17084,9 +17246,8 @@ test_271c() {
        createmany -o $dom 1000
        lctl set_param -n mdc.*.stats=clear
        smalliomany -w $dom 1000 200
-       lctl get_param -n mdc.*.stats
-       local enq=$(lctl get_param -n mdc.*.stats |
-                       awk '/ldlm_ibits_enqueue/ {print $2}')
+       get_mdc_stats $mdtidx
+       local enq=$(get_mdc_stats $mdtidx ldlm_ibits_enqueue)
        # Each file has 1 open, 1 IO enqueues, total 2000
        # but now we have also +1 getxattr for security.capability, total 3000
        [ $enq -ge 2000 ] || error "Too few enqueues $enq, expected > 2000"
@@ -17097,9 +17258,7 @@ test_271c() {
        createmany -o $dom 1000
        lctl set_param -n mdc.*.stats=clear
        smalliomany -w $dom 1000 200
-       lctl get_param -n mdc.*.stats
-       local enq_2=$(lctl get_param -n mdc.*.stats |
-                       awk '/ldlm_ibits_enqueue/ {print $2}')
+       local enq_2=$(get_mdc_stats $mdtidx ldlm_ibits_enqueue)
        # Expect to see reduced amount of RPCs by 1000 due to single enqueue
        # for OPEN and IO lock.
        [ $((enq - enq_2)) -ge 1000 ] ||
@@ -17126,8 +17285,7 @@ test_271d() {
 
        $LFS setstripe -E 1024K -L mdt $DIR/$tdir
 
-       local mdtidx=$($GETSTRIPE -M $DIR/$tdir)
-       local facet=mds$((mdtidx + 1))
+       local mdtidx=$($LFS getstripe -M $DIR/$tdir)
 
        cancel_lru_locks mdc
        dd if=/dev/urandom of=$tmp bs=1000 count=1
@@ -17140,12 +17298,9 @@ test_271d() {
        # append data to the same file it should update local page
        echo "Append to the same page"
        cat /etc/hosts >> $dom
-       local num=$(lctl get_param -n mdc.*.stats |
-               awk '/ost_read/ {print $2}')
-       local ra=$(lctl get_param -n mdc.*.stats |
-               awk '/req_active/ {print $2}')
-       local rw=$(lctl get_param -n mdc.*.stats |
-               awk '/req_waittime/ {print $2}')
+       local num=$(get_mdc_stats $mdtidx ost_read)
+       local ra=$(get_mdc_stats $mdtidx req_active)
+       local rw=$(get_mdc_stats $mdtidx req_waittime)
 
        [ -z $num ] || error "$num READ RPC occured"
        [ $ra == $rw ] || error "$((ra - rw)) resend occured"
@@ -17159,12 +17314,9 @@ test_271d() {
 
        echo "Open and read file"
        cat $dom > /dev/null
-       local num=$(lctl get_param -n mdc.*.stats |
-               awk '/ost_read/ {print $2}')
-       local ra=$(lctl get_param -n mdc.*.stats |
-               awk '/req_active/ {print $2}')
-       local rw=$(lctl get_param -n mdc.*.stats |
-               awk '/req_waittime/ {print $2}')
+       local num=$(get_mdc_stats $mdtidx ost_read)
+       local ra=$(get_mdc_stats $mdtidx req_active)
+       local rw=$(get_mdc_stats $mdtidx req_waittime)
 
        [ -z $num ] || error "$num READ RPC occured"
        [ $ra == $rw ] || error "$((ra - rw)) resend occured"
@@ -17189,8 +17341,7 @@ test_271e() {
 
        $LFS setstripe -E 1024K -L mdt $DIR/$tdir
 
-       local mdtidx=$($GETSTRIPE -M $DIR/$tdir)
-       local facet=mds$((mdtidx + 1))
+       local mdtidx=$($LFS getstripe -M $DIR/$tdir)
 
        cancel_lru_locks mdc
        dd if=/dev/urandom of=$tmp bs=30K count=1
@@ -17202,12 +17353,9 @@ test_271e() {
        echo "Append to the same page"
        cat /etc/hosts >> $dom
 
-       local num=$(lctl get_param -n mdc.*.stats | \
-               awk '/ost_read/ {print $2}')
-       local ra=$(lctl get_param -n mdc.*.stats | \
-               awk '/req_active/ {print $2}')
-       local rw=$(lctl get_param -n mdc.*.stats | \
-               awk '/req_waittime/ {print $2}')
+       local num=$(get_mdc_stats $mdtidx ost_read)
+       local ra=$(get_mdc_stats $mdtidx req_active)
+       local rw=$(get_mdc_stats $mdtidx req_waittime)
 
        [ -z $num ] || error "$num READ RPC occured"
        # Reply buffer can be adjusted for larger buffer by resend
@@ -17221,12 +17369,9 @@ test_271e() {
 
        echo "Open and read file"
        cat $dom > /dev/null
-       local num=$(lctl get_param -n mdc.*.stats | \
-               awk '/ost_read/ {print $2}')
-       local ra=$(lctl get_param -n mdc.*.stats | \
-               awk '/req_active/ {print $2}')
-       local rw=$(lctl get_param -n mdc.*.stats | \
-               awk '/req_waittime/ {print $2}')
+       local num=$(get_mdc_stats $mdtidx ost_read)
+       local ra=$(get_mdc_stats $mdtidx req_active)
+       local rw=$(get_mdc_stats $mdtidx req_waittime)
 
        [ -z $num ] || error "$num READ RPC occured"
        # Reply buffer can be adjusted for larger buffer by resend
@@ -17251,8 +17396,7 @@ test_271f() {
 
        $LFS setstripe -E 1024K -L mdt $DIR/$tdir
 
-       local mdtidx=$($GETSTRIPE -M $DIR/$tdir)
-       local facet=mds$((mdtidx + 1))
+       local mdtidx=$($LFS getstripe -M $DIR/$tdir)
 
        cancel_lru_locks mdc
        dd if=/dev/urandom of=$tmp bs=200000 count=1
@@ -17263,12 +17407,9 @@ test_271f() {
 
        echo "Append to the same page"
        cat /etc/hosts >> $dom
-       local num=$(lctl get_param -n mdc.*.stats | \
-               awk '/ost_read/ {print $2}')
-       local ra=$(lctl get_param -n mdc.*.stats | \
-               awk '/req_active/ {print $2}')
-       local rw=$(lctl get_param -n mdc.*.stats | \
-               awk '/req_waittime/ {print $2}')
+       local num=$(get_mdc_stats $mdtidx ost_read)
+       local ra=$(get_mdc_stats $mdtidx req_active)
+       local rw=$(get_mdc_stats $mdtidx req_waittime)
 
        [ -z $num ] || error "$num READ RPC occured"
        [ $ra == $rw ] || error "$((ra - rw)) resend occured"
@@ -17282,12 +17423,9 @@ test_271f() {
 
        echo "Open and read file"
        cat $dom > /dev/null
-       local num=$(lctl get_param -n mdc.*.stats | \
-               awk '/ost_read/ {print $2}')
-       local ra=$(lctl get_param -n mdc.*.stats | \
-               awk '/req_active/ {print $2}')
-       local rw=$(lctl get_param -n mdc.*.stats | \
-               awk '/req_waittime/ {print $2}')
+       local num=$(get_mdc_stats $mdtidx ost_read)
+       local ra=$(get_mdc_stats $mdtidx req_active)
+       local rw=$(get_mdc_stats $mdtidx req_waittime)
 
        [ $num -eq 1 ] || error "expect 1 READ RPC, $num occured"
        [ $ra == $rw ] || error "$((ra - rw)) resend occured"
@@ -17634,7 +17772,7 @@ test_300d() {
        local file
 
        mkdir -p $DIR/$tdir
-       $SETSTRIPE -c 2 $DIR/$tdir
+       $LFS setstripe -c 2 $DIR/$tdir
 
        #local striped directory
        $LFS setdirstripe -i 0 -c 2 -H all_char $DIR/$tdir/striped_dir ||
@@ -17965,6 +18103,11 @@ test_300k() {
        [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.7.55) ] &&
                skip "Need MDS version at least 2.7.55"
 
+       # this test needs a huge transaction
+       local kb
+       kb=$(do_facet $SINGLEMDS lctl get_param -n osd*.lustre-MDT0000.kbytestotal)
+       [ $kb -lt $((1024*1024)) ] && skip "too small mds: $kb"
+
        local stripe_count
        local file
 
@@ -18170,6 +18313,31 @@ test_300q() {
 }
 run_test 300q "create remote directory under orphan directory"
 
+test_300r() {
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.7.55) ] &&
+               skip "Need MDS version at least 2.7.55" && return
+       [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+
+       mkdir $DIR/$tdir
+
+       $LFS setdirstripe -i 0 -c -1 $DIR/$tdir/striped_dir ||
+               error "set striped dir error"
+
+       $LFS getdirstripe $DIR/$tdir/striped_dir ||
+               error "getstripeddir fails"
+
+       local stripe_count
+       stripe_count=$($LFS getdirstripe $DIR/$tdir/striped_dir |
+                     awk '/lmv_stripe_count:/ { print $2 }')
+
+       [ $MDSCOUNT -ne $stripe_count ] &&
+               error "wrong stripe count $stripe_count expected $MDSCOUNT"
+
+       rm -rf $DIR/$tdir/striped_dir ||
+               error "unlink striped dir fails"
+}
+run_test 300r "test -1 striped directory"
+
 prepare_remote_file() {
        mkdir $DIR/$tdir/src_dir ||
                error "create remote source failed"
@@ -18260,7 +18428,7 @@ test_311() {
        local old_iused=$($LFS df -i | grep OST0000 | awk '{ print $3 }')
 
        mkdir -p $DIR/$tdir
-       $SETSTRIPE -i 0 -c 1 $DIR/$tdir
+       $LFS setstripe -i 0 -c 1 $DIR/$tdir
        createmany -o $DIR/$tdir/$tfile. 1000
 
        # statfs data is not real time, let's just calculate it
@@ -18275,8 +18443,8 @@ test_311() {
                        osp.*OST0000*MDT000?.max_create_count=0"
        done
 
-       $SETSTRIPE -i 0 $DIR/$tdir/$tfile || error "setstripe failed"
-       local index=$($GETSTRIPE -i $DIR/$tdir/$tfile)
+       $LFS setstripe -i 0 $DIR/$tdir/$tfile || error "setstripe failed"
+       local index=$($LFS getstripe -i $DIR/$tdir/$tfile)
        [ $index -ne 0 ] || error "$tfile stripe index is 0"
 
        unlinkmany $DIR/$tdir/$tfile. 1000
@@ -18345,7 +18513,6 @@ test_312() { # LU-4856
        local max_blksz=$(do_facet ost1 \
                          $ZFS get -p recordsize $(facet_device ost1) |
                          awk '!/VALUE/{print $3}')
-       local min_blksz=$(getconf PAGE_SIZE)
 
        # to make life a little bit easier
        $LFS mkdir -c 1 -i 0 $DIR/$tdir
@@ -18357,30 +18524,31 @@ test_312() { # LU-4856
 
        # Get ZFS object id
        local zfs_objid=$(zfs_oid_to_objid ost1 $oid)
+       # block size change by sequential overwrite
+       local bs
 
-       # block size change by sequential over write
-       local blksz
-       for ((bs=$min_blksz; bs <= max_blksz; bs <<= 2)); do
+       for ((bs=$PAGE_SIZE; bs <= max_blksz; bs *= 4)) ; do
                dd if=/dev/zero of=$tf bs=$bs count=1 oflag=sync conv=notrunc
 
-               blksz=$(zfs_object_blksz ost1 $zfs_objid)
+               local blksz=$(zfs_object_blksz ost1 $zfs_objid)
                [ $blksz -eq $bs ] || error "blksz error: $blksz, expected: $bs"
        done
        rm -f $tf
 
        # block size change by sequential append write
-       dd if=/dev/zero of=$tf bs=$min_blksz count=1 oflag=sync conv=notrunc
+       dd if=/dev/zero of=$tf bs=$PAGE_SIZE count=1 oflag=sync conv=notrunc
        oid=$($LFS getstripe $tf | awk '/obdidx/{getline; print $2}')
        zfs_objid=$(zfs_oid_to_objid ost1 $oid)
+       local count
 
-       for ((count = 1; count < $((max_blksz / min_blksz)); count *= 2)); do
-               dd if=/dev/zero of=$tf bs=$min_blksz count=$count seek=$count \
+       for ((count = 1; count < $((max_blksz / PAGE_SIZE)); count *= 2)); do
+               dd if=/dev/zero of=$tf bs=$PAGE_SIZE count=$count seek=$count \
                        oflag=sync conv=notrunc
 
                blksz=$(zfs_object_blksz ost1 $zfs_objid)
-               [ $blksz -eq $((2 * count * min_blksz)) ] ||
-                       error "blksz error, actual $blksz, "    \
-                               "expected: 2 * $count * $min_blksz"
+               [ $blksz -eq $((2 * count * PAGE_SIZE)) ] ||
+                       error "blksz error, actual $blksz, " \
+                               "expected: 2 * $count * $PAGE_SIZE"
        done
        rm -f $tf
 
@@ -18391,8 +18559,8 @@ test_312() { # LU-4856
 
        dd if=/dev/zero of=$tf bs=1K count=1 oflag=sync conv=notrunc
        blksz=$(zfs_object_blksz ost1 $zfs_objid)
-       [ $blksz -eq $min_blksz ] ||
-               error "blksz error: $blksz, expected: $min_blksz"
+       [ $blksz -eq $PAGE_SIZE ] ||
+               error "blksz error: $blksz, expected: $PAGE_SIZE"
 
        dd if=/dev/zero of=$tf bs=64K count=1 oflag=sync conv=notrunc seek=128
        blksz=$(zfs_object_blksz ost1 $zfs_objid)
@@ -18408,12 +18576,13 @@ test_313() {
        remote_ost_nodsh && skip "remote OST with nodsh"
 
        local file=$DIR/$tfile
+
        rm -f $file
-       $SETSTRIPE -c 1 -i 0 $file || error "setstripe failed"
+       $LFS setstripe -c 1 -i 0 $file || error "setstripe failed"
 
        # define OBD_FAIL_TGT_RCVD_EIO           0x720
        do_facet ost1 "$LCTL set_param fail_loc=0x720"
-       dd if=/dev/zero of=$file bs=4096 oflag=direct count=1 &&
+       dd if=/dev/zero of=$file bs=$PAGE_SIZE oflag=direct count=1 &&
                error "write should failed"
        do_facet ost1 "$LCTL set_param fail_loc=0"
        rm -f $file
@@ -18423,7 +18592,7 @@ run_test 313 "io should fail after last_rcvd update fail"
 test_314() {
        [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs"
 
-       $SETSTRIPE -c 2 -i 0 $DIR/$tfile || error "setstripe failed"
+       $LFS setstripe -c 2 -i 0 $DIR/$tfile || error "setstripe failed"
        do_facet ost1 "$LCTL set_param fail_loc=0x720"
        rm -f $DIR/$tfile
        wait_delete_completed
@@ -18435,8 +18604,9 @@ test_315() { # LU-618
        local file=$DIR/$tfile
        rm -f $file
 
-       $MULTIOP $file oO_CREAT:O_DIRECT:O_RDWR:w4096000c
-       $MULTIOP $file oO_RDONLY:r4096000_c &
+       $MULTIOP $file oO_CREAT:O_DIRECT:O_RDWR:w4063232c ||
+               error "multiop file write failed"
+       $MULTIOP $file oO_RDONLY:r4063232_c &
        PID=$!
 
        sleep 2
@@ -18543,7 +18713,7 @@ test_fake_rw() {
        local saved_debug=$($LCTL get_param -n debug)
        $LCTL set_param debug=0
 
-       $SETSTRIPE -c 1 -i 0 $DIR/$tfile
+       $LFS setstripe -c 1 -i 0 $DIR/$tfile
 
        # get ost1 size - lustre-OST0000
        local ost1_avail_size=$($LFS df | awk /${ost1_svc}/'{ print $4 }')
@@ -18942,7 +19112,7 @@ test_407() {
 run_test 407 "transaction fail should cause operation fail"
 
 test_408() {
-       dd if=/dev/zero of=$DIR/$tfile bs=4096 count=1 oflag=direct
+       dd if=/dev/zero of=$DIR/$tfile bs=$PAGE_SIZE count=1 oflag=direct
 
        #define OBD_FAIL_OSC_BRW_PREP_REQ2        0x40a
        lctl set_param fail_loc=0x8000040a
@@ -19152,6 +19322,55 @@ test_415() {
 }
 run_test 415 "lock revoke is not missing"
 
+test_416() {
+       [ $(lustre_version_code mds1) -lt $(version_code 2.11.55) ] &&
+               skip "Need server version at least 2.11.55"
+
+       # define OBD_FAIL_OSD_TXN_START    0x19a
+       do_facet mds1 lctl set_param fail_loc=0x19a
+
+       lfs mkdir -c $MDSCOUNT $DIR/$tdir
+
+       true
+}
+run_test 416 "transaction start failure won't cause system hung"
+
+cleanup_417() {
+       trap 0
+       do_nodes $(comma_list $(mdts_nodes)) \
+               "$LCTL set_param -n mdt.*MDT*.enable_dir_migration=1"
+       do_nodes $(comma_list $(mdts_nodes)) \
+               "$LCTL set_param -n mdt.*MDT*.enable_remote_dir=1"
+       do_nodes $(comma_list $(mdts_nodes)) \
+               "$LCTL set_param -n mdt.*MDT*.enable_striped_dir=1"
+}
+
+test_417() {
+       [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+       [[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.56) ]] &&
+               skip "Need MDS version at least 2.11.56" && return
+
+       trap cleanup_417 RETURN EXIT
+
+       $LFS mkdir -i 1 $DIR/$tdir.1 || error "create remote dir $tdir.1 failed"
+       do_nodes $(comma_list $(mdts_nodes)) \
+               "$LCTL set_param -n mdt.*MDT*.enable_dir_migration=0"
+       $LFS migrate -m 0 $DIR/$tdir.1 &&
+               error "migrate dir $tdir.1 should fail"
+
+       do_nodes $(comma_list $(mdts_nodes)) \
+               "$LCTL set_param -n mdt.*MDT*.enable_remote_dir=0"
+       $LFS mkdir -i 1 $DIR/$tdir.2 &&
+               error "create remote dir $tdir.2 should fail"
+
+       do_nodes $(comma_list $(mdts_nodes)) \
+               "$LCTL set_param -n mdt.*MDT*.enable_striped_dir=0"
+       $LFS mkdir -c 2 $DIR/$tdir.3 &&
+               error "create striped dir $tdir.3 should fail"
+       true
+}
+run_test 417 "disable remote dir, striped dir and dir migration"
+
 prep_801() {
        [[ $(lustre_version_code mds1) -lt $(version_code 2.9.55) ]] ||
        [[ $(lustre_version_code ost1) -lt $(version_code 2.9.55) ]] &&
@@ -19437,11 +19656,12 @@ test_803() {
        done
 
        sync; sleep 3
+       wait_delete_completed # ensure old test cleanups are finished
        echo "before create:"
        $LFS df -i $MOUNT
        local before_used=$($LFS df -i | grep MDT0000_UUID | awk '{print $3}')
 
-       for ((i=0; i<10; i++)); do
+       for i in {1..10}; do
                $LFS mkdir -c 1 -i 1 $DIR/$tdir/foo$i ||
                        error "Fail to create $DIR/$tdir/foo$i"
        done
@@ -19451,10 +19671,11 @@ test_803() {
        $LFS df -i $MOUNT
        local after_used=$($LFS df -i | grep MDT0000_UUID | awk '{print $3}')
 
-       [ $after_used -ge $((before_used + 10)) ] ||
+       # allow for an llog to be cleaned up during the test
+       [ $after_used -ge $((before_used + 10 - 1)) ] ||
                error "before ($before_used) + 10 > after ($after_used)"
 
-       for ((i=0; i<10; i++)); do
+       for i in {1..10}; do
                rm -rf $DIR/$tdir/foo$i ||
                        error "Fail to remove $DIR/$tdir/foo$i"
        done
@@ -19463,11 +19684,11 @@ test_803() {
        wait_delete_completed
        echo "after unlink:"
        $LFS df -i $MOUNT
-       before_used=$after_used
        after_used=$($LFS df -i | grep MDT0000_UUID | awk '{print $3}')
 
-       [ $after_used -le $((before_used - 8)) ] ||
-               error "before ($before_used) - 8 < after ($after_used)"
+       # allow for an llog to be created during the test
+       [ $after_used -le $((before_used + 1)) ] ||
+               error "after ($after_used) > before ($before_used) + 1"
 }
 run_test 803 "verify agent object for remote object"
 
@@ -19649,7 +19870,7 @@ test_806() {
        local offset=0
        local i
 
-       echo "Test SOM for single client muti-threaded($num) write"
+       echo "Test SOM for single client multi-threaded($num) write"
        $TRUNCATE $DIR/$tfile 0
        for ((i = 0; i < $num; i++)); do
                $MULTIOP $DIR/$tfile Oz${offset}w${bs}c &
@@ -19678,7 +19899,7 @@ test_806() {
        offset=0
        i=0
 
-       echo "Test SOM for muti-client ($num) writes"
+       echo "Test SOM for multi-client ($num) writes"
        $TRUNCATE $DIR/$tfile 0
        for client in ${CLIENTS//,/ }; do
                do_node $client $MULTIOP $DIR/$tfile Oz${offset}w${bs}c &
@@ -19751,7 +19972,7 @@ test_807() {
        local offset=0
        local i=0
 
-       echo "Test SOM for muti-client ($num) writes"
+       echo "Test SOM for multi-client ($num) writes"
        touch $DIR/$tfile || error "touch $tfile failed"
        $TRUNCATE $DIR/$tfile 0
        for client in ${CLIENTS//,/ }; do
@@ -19776,6 +19997,100 @@ test_807() {
 }
 run_test 807 "verify LSOM syncing tool"
 
+check_som_nologged()
+{
+       local lines=$($LFS changelog $FSNAME-MDT0000 |
+               grep 'x=trusted.som' | wc -l)
+       [ $lines -ne 0 ] && error "trusted.som xattr is logged in Changelogs"
+}
+
+test_808() {
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.55) ] &&
+               skip "Need MDS version at least 2.11.55" && return
+
+       # Registration step
+       changelog_register || error "changelog_register failed"
+
+       touch $DIR/$tfile || error "touch $tfile failed"
+       check_som_nologged
+
+       dd if=/dev/zero of=$DIR/$tfile bs=1048576 count=1 ||
+               error "write $tfile failed"
+       check_som_nologged
+
+       $TRUNCATE $DIR/$tfile 1234
+       check_som_nologged
+
+       $TRUNCATE $DIR/$tfile 1048576
+       check_som_nologged
+
+       # Deregistration step
+       changelog_deregister || error "changelog_deregister failed"
+}
+run_test 808 "Check trusted.som xattr not logged in Changelogs"
+
+check_som_nodata()
+{
+       $LFS getsom $1
+       [[ $? -eq 61 ]] || error "DoM-only file $1 has SOM xattr"
+}
+
+test_809() {
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.56) ] &&
+               skip "Need MDS version at least 2.11.56" && return
+
+       $LFS setstripe -E 1M -L mdt $DIR/$tfile ||
+               error "failed to create DoM-only file $DIR/$tfile"
+       touch $DIR/$tfile || error "touch $tfile failed"
+       check_som_nodata $DIR/$tfile
+
+       dd if=/dev/zero of=$DIR/$tfile bs=2048 count=1 ||
+               error "write $tfile failed"
+       check_som_nodata $DIR/$tfile
+
+       $TRUNCATE $DIR/$tfile 1234
+       check_som_nodata $DIR/$tfile
+
+       $TRUNCATE $DIR/$tfile 4097
+       check_som_nodata $DIR/$file
+}
+run_test 809 "Verify no SOM xattr store for DoM-only files"
+
+test_810() {
+       local ORIG
+       local CSUM
+
+       # t10 seem to dislike partial pages
+       lctl set_param osc.*.checksum_type=adler
+       lctl set_param fail_loc=0x411
+       dd if=/dev/urandom of=$DIR/$tfile bs=10240 count=2
+       ORIG=$(md5sum $DIR/$tfile)
+       lctl set_param ldlm.namespaces.*osc*.lru_size=clear
+       CSUM=$(md5sum $DIR/$tfile)
+       set_checksum_type adler
+       if [ "$ORIG" != "$CSUM" ]; then
+               error "$ORIG != $CSUM"
+       fi
+}
+run_test 810 "partial page writes on ZFS (LU-11663)"
+
+test_811() {
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.56) ] &&
+               skip "Need MDS version at least 2.11.56"
+
+       #define OBD_FAIL_MDS_ORPHAN_DELETE      0x165
+       do_facet mds1 $LCTL set_param fail_loc=0x165
+       $MULTIOP $DIR/$tfile Ouc || error "multiop failed"
+
+       stop mds1
+       start mds1 $(mdsdevname 1) $MDS_MOUNT_OPTS
+
+       sleep 5
+       [[ $(do_facet mds1 pgrep orph_.*-MDD | wc -l) -eq 0 ]] ||
+               error "MDD orphan cleanup thread not quit"
+}
+run_test 811 "orphan name stub can be cleaned up in startup"
+
 #
 # tests that do cleanup/setup should be run at the end
 #