+ export MDS_DUPE=""
+ for f in `seq -f testfile.%g $((NUMFILES + 1)) $((NUMFILES * 2))`; do
+ TEST_FILE=$DIR/$f
+ echo "DUPLICATING MDS file $TEST_FILE"
+ $LFIND -v $TEST_FILE >> $LOG || exit 20
+ MDS_DUPE="$MDS_DUPE $TEST_FILE"
+ done
+ MDS_DUPE=`echo $MDS_DUPE | sed "s#$MOUNT/##g"`
+
+ export MDS_REMOVE=""
+ for f in `seq -f testfile.%g $((NUMFILES * 2 + 1)) $((NUMFILES * 3))`; do
+ TEST_FILE=$DIR/$f
+ echo "REMOVING MDS file $TEST_FILE which has info:"
+ $LFIND -v $TEST_FILE >> $LOG || exit 30
+ MDS_REMOVE="$MDS_REMOVE $TEST_FILE"
+ done
+ MDS_REMOVE=`echo $MDS_REMOVE | sed "s#$MOUNT/##g"`
+
+ MDTDEVS=`get_mnt_devs mds`
+ OSTDEVS=`get_mnt_devs obdfilter`
+ OSTCOUNT=`echo $OSTDEVS | wc -w`
+ sh llmountcleanup.sh || exit 40
+
+ # Remove objects associated with files
+ echo "removing objects: `echo $OST_REMOVE`"
+ DEBUGTMP=`mktemp $TMP/debugfs.XXXXXXXXXX`
+ for i in $OST_REMOVE; do
+ echo "rm O/0/d$((i % 32))/$i" >> $DEBUGTMP
+ done
+ debugfs -w -f $DEBUGTMP `echo $OSTDEVS | cut -d' ' -f 1`
+ RET=$?
+ rm $DEBUGTMP
+ [ $RET -ne 0 ] && exit 50
+
+ SAVE_PWD=$PWD
+ mount -t $FSTYPE -o loop $MDSDEV $MOUNT || exit 60
+ do_umount() {
+ trap 0
+ cd $SAVE_PWD
+ umount -f $MOUNT
+ }
+ trap do_umount EXIT
+
+ #Remove files from mds
+ for f in $MDS_REMOVE; do
+ rm $MOUNT/ROOT/$f || exit 70
+ done