read_lock(&ofd->ofd_seq_list_lock);
cfs_list_for_each_entry(oseq, &ofd->ofd_seq_list, os_list) {
- rc = snprintf(page, count, DOSTID"\n", POSTID(&oseq->os_oi));
+ __u64 seq;
+
+ seq = ostid_seq(&oseq->os_oi) == 0 ?
+ fid_idif_seq(ostid_id(&oseq->os_oi),
+ ofd->ofd_lut.lut_lsd.lsd_osd_index) :
+ ostid_seq(&oseq->os_oi);
+ rc = snprintf(page, count, DOSTID"\n", seq,
+ ostid_id(&oseq->os_oi));
if (rc < 0) {
retval = rc;
break;
stop_mds || error "stopping mds failed"
if combined_mgs_mds; then
- start_mds "-o nosvc" ||
+ start_mdt 1 "-o nosvc" ||
error "starting mds with nosvc option failed"
fi
skip "ldiskfs only test" && return
#tune MDT with "-O extents"
- add $SINGLEMDS \
- $(mkfs_opts $SINGLEMDS ${mdsdev}) --reformat $mdsdev ||
- error "add $SINGLEMDS failed"
- $TUNE2FS -O extents $mdsdev
+
+ for num in $(seq $MDSCOUNT); do
+ add mds${num} $(mkfs_opts mds$num $(mdsdevname $num)) \
+ --reformat $(mdsdevname $num) $(mdsvdevname $num) ||
+ error "add mds $num failed"
+ $TUNE2FS -O extents $(mdsdevname $num)
+ done
+
add ost1 $(mkfs_opts ost1 $ostdev) --reformat $ostdev ||
error "add $ostdev failed"
start_mgsmds || error "start mds failed"
# check the layout
for j in $(seq 0 $((OSTCOUNT - 1))); do
index=$(((i + j) % OSTCOUNT))
- [ ${ost_idx[$j]} -eq $index ] || error
+ [ ${ost_idx[$j]} -eq $index ] ||
+ error "$j:${ost_idx[$j]} != $index"
done
done
}
remote_ost_nodsh && skip "remote OST with nodsh" && return
local param
+ local param_seq
local ostname
local mds_last
+ local mds_last_seq
local ost_last
+ local ost_last_seq
+ local ost_last_id
local ostnum
local node
+ local found=0
# only test MDT0000
local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS)
for value in $(do_facet $SINGLEMDS lctl get_param osc.$mdtosc.prealloc_last_id) ; do
- param=`echo ${value[0]} | cut -d "=" -f1`
- ostname=`echo $param | cut -d "." -f2 | cut -d - -f 1-2`
- mds_last=$(do_facet $SINGLEMDS lctl get_param -n $param)
+ param=$(echo ${value[0]} | cut -d "=" -f1)
+ ostname=$(echo $param | cut -d "." -f2 | cut -d - -f 1-2)
+ param_seq=$(echo ${param} |
+ sed -e s/prealloc_last_id/prealloc_last_seq/g)
+ mds_last_seq=$(do_facet $SINGLEMDS lctl get_param -n $param_seq)
+ mds_last=$(do_facet $SINGLEMDS lctl get_param -n $param)
+
ostnum=$(index_from_ostuuid ${ostname}_UUID)
node=$(facet_active_host ost$((ostnum+1)))
param="obdfilter.$ostname.last_id"
- ost_last=$(do_node $node lctl get_param -n $param | head -n 1 |
- awk -F':' '{print $2}')
- echo "$ostname.last_id=$ost_last ; MDS.last_id=$mds_last"
- if [ $ost_last != $mds_last ]; then
- error "$ostname.last_id=$ost_last ; MDS.last_id=$mds_last"
- fi
+ for ost_last in $(do_node $node lctl get_param -n $param) ; do
+ echo "$ostname.last_id=$ost_last ;MDS.last_id=$mds_last"
+ ost_last_id=$(echo $ost_last | awk -F':' '{print $2}' |
+ sed -e "s/^0x//g")
+ ost_last_seq=$(echo $ost_last | awk -F':' '{print $1}')
+ if [ $ost_last_seq = $mds_last_seq ]; then
+ if [ $ost_last_id != $mds_last ]; then
+ error "$ost_last != $mds_last_id"
+ else
+ found=1
+ break
+ fi
+ fi
+ done
done
+ [ $found = 0 ] && error "can not match last_seq/last_id for $mdtosc"
+ return 0
}
run_test 53 "verify that MDS and OSTs agree on pre-creation ===="
[ "$OSTCOUNT" -lt "2" ] &&
skip_env "skipping FIEMAP on 2-stripe file test" && return
+ [ "$OSTCOUNT" -ge "10" ] &&
+ skip_env "skipping FIEMAP with >= 10 OSTs" && return
+
local filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
[ -n "$filefrag_op" ] && skip_env "filefrag does not support FIEMAP" &&
return
[ "$OSTCOUNT" -lt "2" ] &&
skip_env "skipping FIEMAP on 2-stripe file" && return
+ [ "$OSTCOUNT" -ge "10" ] &&
+ skip_env "skipping FIEMAP with >= 10 OSTs" && return
+
filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
[ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" &&
return
test_130d() {
[ "$OSTCOUNT" -lt "3" ] && skip_env "skipping FIEMAP on N-stripe file test" && return
+ [ "$OSTCOUNT" -ge "10" ] &&
+ skip_env "skipping FIEMAP with >= 10 OSTs" && return
+
filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
[ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" && return
test_130e() {
[ "$OSTCOUNT" -lt "2" ] && skip_env "skipping continuation FIEMAP test" && return
+ [ "$OSTCOUNT" -ge "10" ] &&
+ skip_env "skipping FIEMAP with >= 10 OSTs" && return
+
filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
[ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" && return