cleanup_21() {
trap 0
- umount $DIR1/d21
+ umount $DIR1/$tdir
}
test_21() { # Bug 5907
- test_mkdir $DIR1/d21
- mount /etc $DIR1/d21 --bind || error "mount failed" # Poor man's mount.
+ test_mkdir $DIR1/$tdir
+ mount /etc $DIR1/$tdir --bind || error "mount failed" # Poor man's mount.
trap cleanup_21 EXIT
- rmdir -v $DIR1/d21 && error "Removed mounted directory"
- rmdir -v $DIR2/d21 && echo "Removed mounted directory from another mountpoint, needs to be fixed"
- test -d $DIR1/d21 || error "Mounted directory disappeared"
+ rmdir -v $DIR1/$tdir && error "Removed mounted directory"
+ rmdir -v $DIR2/$tdir && echo "Removed mounted directory from another mountpoint, needs to be fixed"
+ test -d $DIR1/$tdir || error "Mounted directory disappeared"
cleanup_21
- test -d $DIR2/d21 || test -d $DIR1/d21 && error "Removed dir still visible after umount"
+ test -d $DIR2/$tdir || test -d $DIR1/$tdir && error "Removed dir still visible after umount"
true
}
run_test 21 " Try to remove mountpoint on another dir ===="
#bug 11549 - permanently turn test off in b1_5
run_test 29 "lock put race between glimpse and enqueue ========="
-test_30() { #bug #11110
+test_30() { #bug #11110, LU-2523
test_mkdir -p $DIR1/$tdir
cp -f /bin/bash $DIR1/$tdir/bash
/bin/sh -c 'sleep 1; rm -f $DIR2/$tdir/bash;
cp /bin/bash $DIR2/$tdir' &
- local err=$($DIR1/$tdir/bash -c 'sleep 2;
- openfile -f O_RDONLY /proc/$$/exe >& /dev/null; echo $?')
+ $DIR1/$tdir/bash -c 'sleep 2;
+ openfile -f O_RDONLY /proc/$$/exe >& /dev/null; echo $?'
wait
- [ $err -ne 116 ] &&
- error_ignore 12900 "return code ($err) != -ESTALE" && return
true
}
local stat=0
for mds in ${mdts//,/ }; do
varsvc=${mds}_svc
- dev=$(basename $(do_facet $mds lctl get_param -n osd*.${!varsvc}.mntdev))
- val=$(do_facet $mds "procfile=/proc/fs/jbd/$dev/info;
-[ -f \\\$procfile ] || procfile=/proc/fs/jbd2/$dev/info;
-[ -f \\\$procfile ] || procfile=/proc/fs/jbd2/${dev}\:\\\*/info;
-cat \\\$procfile | head -1;")
+ dev=$(basename $(do_facet $mds "lctl get_param -n osd*.${!varsvc}.mntdev|\
+ xargs readlink -f" ))
+ val=$(do_facet $mds "cat /proc/fs/jbd*/${dev}{,:*,-*}/info 2>/dev/null|\
+ head -1")
val=${val%% *};
stat=$(( stat + val))
done
test_33a() {
remote_mds_nodsh && skip "remote MDS with nodsh" && return
- [ -n "$CLIENTS" ] || { skip "Need two or more clients" && return 0; }
- [ $CLIENTCOUNT -ge 2 ] || \
- { skip "Need two or more clients, have $CLIENTCOUNT" && return 0; }
+ [ -z "$CLIENTS" ] && skip "Need two or more clients, have $CLIENTS" && return 0
+ [ $CLIENTCOUNT -lt 2 ] &&
+ skip "Need two or more clients, have $CLIENTCOUNT" && return 0
local nfiles=${TEST33_NFILES:-10000}
local param_file=$TMP/$tfile-params
+ local fstype=$(facet_fstype $SINGLEMDS)
save_lustre_params $(comma_list $(mdts_nodes)) "mdt.*.commit_on_sharing" > $param_file
local COS
- local jbdold
- local jbdnew
+ local jbdold="N/A"
+ local jbdnew="N/A"
local jbd
for COS in 0 1; do
for i in 1 2 3; do
do_nodes $CLIENT1,$CLIENT2 "mkdir -p $DIR1/$tdir-\\\$(hostname)-$i"
- jbdold=$(print_jbd_stat)
+ [ $fstype = ldiskfs ] && jbdold=$(print_jbd_stat)
echo "=== START createmany old: $jbdold transaction"
local elapsed=$(do_and_time "do_nodes $CLIENT1,$CLIENT2 createmany -o $DIR1/$tdir-\\\$(hostname)-$i/f- -r $DIR2/$tdir-\\\$(hostname)-$i/f- $nfiles > /dev/null 2>&1")
- jbdnew=$(print_jbd_stat)
- jbd=$(( jbdnew - jbdold ))
+ [ $fstype = ldiskfs ] && jbdnew=$(print_jbd_stat)
+ [ $fstype = ldiskfs ] && jbd=$(( jbdnew - jbdold ))
echo "=== END createmany new: $jbdnew transaction : $jbd transactions nfiles $nfiles time $elapsed COS=$COS"
- avgjbd=$(( avgjbd + jbd ))
+ [ $fstype = ldiskfs ] && avgjbd=$(( avgjbd + jbd ))
avgtime=$(( avgtime + elapsed ))
done
eval cos${COS}_jbd=$((avgjbd / 3))
# open and sleep 2 seconds then read
$MULTIOP $DIR2/$tfile o_2r${filesize}c &
local pid=$!
- sleep 0.1
+ sleep 1
# create the layout of testing file
dd if=$origfile of=$DIR1/$tfile conv=notrunc > /dev/null
$LCTL set_param fail_loc=0x1404
stat -c %s $DIR2/$tfile |tee $tmpfile &
local pid=$!
- sleep 0.1
+ sleep 1
# create layout of testing file
dd if=/dev/zero of=$DIR1/$tfile bs=1k count=1 conv=notrunc > /dev/null
echo "Setting layout ..."
$LFS setstripe -c $OSTCOUNT $DIR1/$tfile &
pid=$!
- sleep 0.1
+ sleep 1
# get layout of this file should wait until dd is finished
local stripecnt=`$LFS getstripe -c $DIR2/$tfile`