log "===== $0 ### 1 NODE UNLINK ###"
- if [ -f "$LOG" ]; then
- CREATED=$(sed -n '/^Rate:/s/^.* \([0-9]*\) creates .*/\1/p' $LOG)
- [ $CREATED -gt 0 ] && NUM_FILES=$CREATED
- fi
-
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink
--nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
log "===== $0 ### $NUM_CLIENTS NODES UNLINK ###"
- if [ -f "$LOG" ]; then
- CREATED=$(sed -n '/^Rate:/s/^.* \([0-9]*\) creates .*/\1/p' $LOG)
- [ $CREATED -gt 0 ] && NUM_FILES=$CREATED
- fi
-
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink
--nfiles ${NUM_FILES} --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
else
log "===== $0 ### 1 NODE UNLINK ###"
- if [ -f "$LOG" ]; then
- CREATED=$(sed -n '/^Rate:/s/^.* \([0-9]*\) creates .*/\1/p' $LOG)
- [ $CREATED -gt 0 ] && NUM_FILES=$CREATED
- fi
-
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink
--nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
else
log "===== $0 ### $NUM_CLIENTS NODES UNLINK with $THREADS_PER_CLIENT threads per client ###"
- if [ -f "$LOG" ]; then
- CREATED=$(sed -n '/^Rate:/s/^.* \([0-9]*\) creates .*/\1/p' $LOG)
- [ $CREATED -gt 0 ] && NUM_FILES=$CREATED
- fi
-
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink
--nfiles ${NUM_FILES} --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
/* if we're not measuring creation rates then precreate
* the files we're operating on. */
- if ((mode != CREATE) && (mode != MKNOD) && !ignore) {
+ if ((mode != CREATE) && (mode != MKNOD) && !ignore &&
+ (mode != UNLINK || recreate)) {
/* create the files in reverse order. When we encounter
* a file that already exists, assume the remainder of
* the files exist to save time. The timed performance
if (rc) {
if (((rc = errno) == EINTR) && alarm_caught)
break;
- if (((rc = errno) == ENOENT) && ignore)
- continue;
+ if ((rc = errno) == ENOENT) {
+ if (ignore)
+ continue;
+ /* no more files to unlink */
+ break;
+ }
fatal(myrank, "unlink(%s) error: %s\n",
filename, strerror(rc));
}
"(total: %d threads %d %ss %d dirs %d threads/dir %.2f secs)\n",
effective_rate, ag_rate, avg_rate, cmd, nthreads, ag_ops,
cmd, ndirs, dirthreads, interval);
+ if (mode == UNLINK && !recreate && !ignore && ag_ops != nfiles)
+ printf("Warning: only unlinked %d files instead of %d"
+ "\n", ag_ops, nfiles);
}
if (recreate) {