UNLINKMANY=${UNLINKMANY:-unlinkmany}
LCTL=${LCTL:-lctl}
-MOUNT1=${MOUNT1:-/mnt/lustre1}
+MOUNT=${MOUNT:-/mnt/lustre}
MOUNT2=${MOUNT2:-/mnt/lustre2}
-DIR=${DIR:-$MOUNT1}
+DIR=${DIR:-$MOUNT}
DIR2=${DIR2:-$MOUNT2}
COUNT=${COUNT:-100}
cleanup() {
[ $CR_PID ] && kill -9 $CR_PID
+ [ $ST_PID ] && kill -9 $ST_PID
}
-trap cleanup 0
+trap cleanup EXIT
LOCKDIR=$DIR/lockdir
LOCKFILE=$LOCKDIR/lockfile
MINDIR=$DIR
MAXDIR=$DIR
-MINRES=2000000000
+MINRES=4294967295
MAXRES=0
mkdir -p $MINDIR
while [ $MINRES -gt $MAXRES ]; do
FILETMP=$MINDIR/f$$${NUM}
- DIRTMP=$MAXDIR/d$$${NUM}
+ DIRTMP=$DIR/d$$/d${NUM}
touch $FILETMP
mkdir -p $DIRTMP
FILERES=`ls -id $FILETMP | awk '{ print $1 }'`
MAXDIR=$DIRTMP
MAXRES=$DIRRES
fi
- if [ $FILERES -lt $MINRES ]; then
+ if [ $FILERES -lt $MINRES -o -z "$MINFILE" ]; then
[ -f "$MINFILE" ] && rm $MINFILE
MINFILE=$FILETMP
MINRES=$FILERES
else
- rm $TMPFILE
+ rm $FILETMP
fi
NUM=$(($NUM + 1))
done
mv $MAXDIR $LOCKDIR
mv $MINFILE $LOCKFILE
-rm -rf $DIR/d$$*
+rm -rf $DIR/d$$
$LCTL mark "start dir: $LOCKDIR=$MAXRES file: $LOCKFILE=$MINRES"
# link will lock $LOCKFILE and $DIR as it creates ${LOCKFILE}{0,1,...}
$CREATEMANY -l$LOCKFILE $LOCKFILE -$COUNT &
CR_PID=$!
-sleep 1
+while ! test -f ${LOCKFILE}1 ; do
+ sleep 1
+done
# this will lock $DIR and ${LOCKFILE}0
$STATMANY -s $DIR2/lockdir/lockfile 1 -$COUNT &
kill $CR_PID || true
kill $ST_PID || true
-#rm -r $PDIR
+rm -rf $LOCKDIR