test_36g() {
remote_ost_nodsh && skip "remote OST with nodsh" && return
+ local fmd_max_age
+ local fmd_before
+ local fmd_after
mkdir -p $DIR/$tdir
- export FMD_MAX_AGE=`do_facet ost1 lctl get_param -n obdfilter.*.client_cache_seconds 2> /dev/null | head -n 1`
- FMD_BEFORE="`awk '/ll_fmd_cache/ { print $2 }' /proc/slabinfo`"
+ fmd_max_age=$(do_facet ost1 \
+ "lctl get_param -n obdfilter.*.client_cache_seconds 2> /dev/null | \
+ head -n 1")
+
+ fmd_before=$(do_facet ost1 \
+ "awk '/ll_fmd_cache/ {print \\\$2}' /proc/slabinfo")
touch $DIR/$tdir/$tfile
- sleep $((FMD_MAX_AGE + 12))
- FMD_AFTER="`awk '/ll_fmd_cache/ { print $2 }' /proc/slabinfo`"
- [ "$FMD_AFTER" -gt "$FMD_BEFORE" ] && \
- echo "AFTER : $FMD_AFTER > BEFORE $FMD_BEFORE" && \
+ sleep $((fmd_max_age + 12))
+ fmd_after=$(do_facet ost1 \
+ "awk '/ll_fmd_cache/ {print \\\$2}' /proc/slabinfo")
+
+ echo "fmd_before: $fmd_before"
+ echo "fmd_after: $fmd_after"
+ [ "$fmd_after" -gt "$fmd_before" ] && \
+ echo "AFTER: $fmd_after > BEFORE: $fmd_before" && \
error "fmd didn't expire after ping" || true
}
run_test 36g "filter mod data cache expiry ====================="
local list=$(comma_list $(osts_nodes))
local big=$(do_nodes $list grep "cache" /proc/cpuinfo | \
awk '{sum+=$4} END{print sum}')
+ local min_avail=$(lctl get_param -n osc.*[oO][sS][cC]-[^M]*.kbytesavail | \
+ sort -n | head -1)
+ local large_file_size=$((big * 2))
+
+ log "cache size on OSS is $big KB"
+ log "large file size is $large_file_size KB"
+ log "min available OST size is $min_avail KB"
- log big is $big K
+ [ $min_avail -le $large_file_size ] && \
+ skip "the minimum available OST size needs > $large_file_size KB" && \
+ return 0
dd if=/dev/urandom of=$temp bs=6096 count=1 || \
error "dd of=$temp bs=6096 count=1 failed"
echo "12345" >>$file
cmp $temp $file || error "$temp $file differ (append2)"
- dd if=/dev/urandom of=$temp bs=$((big*2)) count=1k || \
- error "dd of=$temp bs=$((big*2)) count=1k failed"
+ dd if=/dev/urandom of=$temp bs=$large_file_size count=1k || \
+ error "dd of=$temp bs=$large_file_size count=1k failed"
cp $temp $file
ls -lh $temp $file
cancel_lru_locks osc
cmp $temp $file || error "$temp $file differ"
- rm -f $temp
+ rm -f $temp $file
true
}
}
run_test 180b "test obdecho directly on obdfilter"
+test_181() { # bug 22177
+ mkdir -p $DIR/$tdir || error "creating dir $DIR/$tdir"
+ # create enough files to index the directory
+ createmany -o $DIR/$tdir/foobar 4000
+ # print attributes for debug purpose
+ lsattr -d .
+ # open dir
+ multiop_bg_pause $DIR/$tdir D_Sc || return 1
+ MULTIPID=$!
+ # remove the files & current working dir
+ unlinkmany $DIR/$tdir/foobar 4000
+ rmdir $DIR/$tdir
+ kill -USR1 $MULTIPID
+ wait $MULTIPID
+ stat $DIR/$tdir && error "open-unlinked dir was not removed!"
+ return 0
+}
+run_test 181 "Test open-unlinked dir ========================"
+
# OST pools tests
POOL=${POOL:-cea1}
TGT_COUNT=$OSTCOUNT