--- /dev/null
+#!/bin/bash
+
+DIR=$1
+MAX=$2
+
+while true; do
+ file=$DIR/$((RANDOM % MAX))
+ mode=$(printf '%o' $((RANDOM % 010000)))
+ chmod $mode $file 2> /dev/null
+done
--- /dev/null
+#!/bin/bash
+
+DIR=$1
+MAX=$2
+
+while true; do
+ file=$DIR/$((RANDOM % MAX))
+ chown $RANDOM:$RANDOM $file 2> /dev/null
+done
--- /dev/null
+#!/bin/bash
+
+DIR=$1
+MAX=$2
+
+while true; do
+ file=$DIR/$((RANDOM % MAX))
+ attr=user.$((RANDOM % MAX))
+ setfattr -x $attr $file 2>/dev/null
+done
--- /dev/null
+#!/bin/bash
+
+DIR=$1
+MAX=$2
+
+while true; do
+ file=$DIR/$((RANDOM % MAX))
+ getfattr -d -m- $file &> /dev/null
+done
--- /dev/null
+#!/bin/bash
+
+DIR=$1
+MAX=$2
+
+while true; do
+ file=$DIR/$((RANDOM % MAX))
+ $MCREATE $file 2> /dev/null
+done
--- /dev/null
+#!/bin/bash
+
+DIR=$1
+MAX=$2
+
+while true; do
+ file=$DIR/$((RANDOM % MAX))
+ attr=user.$((RANDOM % MAX))
+ value=$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM
+ setfattr -n $attr -v $value $file 2> /dev/null
+done
--- /dev/null
+#!/bin/bash
+
+DIR=$1
+MAX=$2
+
+while true; do
+ file=$DIR/$((RANDOM % MAX))
+ $TRUNCATE $file $RANDOM 2> /dev/null
+done
mkdir -p $DIR
RACER_PROGS="file_create dir_create file_rm file_rename file_link file_symlink \
-file_list file_concat file_exec"
+file_list file_concat file_exec file_chown file_chmod file_mknod file_truncate \
+file_delxattr file_getxattr file_setxattr"
if [ $MDSCOUNT -gt 1 ]; then
RACER_PROGS="${RACER_PROGS} dir_remote dir_migrate"
[ "$COUNT" ] || COUNT=10000
[ "$SLOW" = "no" ] && COUNT=1000
-[ "$MCREATE" ] || MCREATE=mcreate
-
[ "$MKDIRMANY" ] || MKDIRMANY="createmany -d"
[ "$RMDIRMANY" ] || RMDIRMANY="unlinkmany -d"
MULTIOP=${MULTIOP:-multiop}
OPENFILE=${OPENFILE:-openfile}
-MCREATE=${MCREATE:-mcreate}
MOUNT_2=${MOUNT_2:-"yes"}
FAIL_ON_ERROR=false
require_dsh_mds || exit 0
-MCREATE=${MCREATE:-mcreate}
SAVED_MDSSIZE=${MDSSIZE}
SAVED_OSTSIZE=${OSTSIZE}
SAVED_OSTCOUNT=${OSTCOUNT}
LFIND=${LFIND:-"$LFS find"}
LVERIFY=${LVERIFY:-ll_dirstripe_verify}
LCTL=${LCTL:-lctl}
-MCREATE=${MCREATE:-mcreate}
OPENFILE=${OPENFILE:-openfile}
OPENUNLINK=${OPENUNLINK:-openunlink}
export MULTIOP=${MULTIOP:-multiop}
SIZE=${SIZE:-40960}
CHECKSTAT=${CHECKSTAT:-"checkstat -v"}
-MCREATE=${MCREATE:-mcreate}
OPENFILE=${OPENFILE:-openfile}
OPENUNLINK=${OPENUNLINK:-openunlink}
export MULTIOP=${MULTIOP:-multiop}
[ ! -f "$LST" ] && export LST=$(which lst)
export SGPDDSURVEY=${SGPDDSURVEY:-"$LUSTRE/../lustre-iokit/sgpdd-survey/sgpdd-survey")}
[ ! -f "$SGPDDSURVEY" ] && export SGPDDSURVEY=$(which sgpdd-survey)
+ export MCREATE=${MCREATE:-mcreate}
# Ubuntu, at least, has a truncate command in /usr/bin
# so fully path our truncate command.
export TRUNCATE=${TRUNCATE:-$LUSTRE/tests/truncate}
* Lustre is a trademark of Sun Microsystems, Inc.
*/
-#include <unistd.h>
-#include <stdio.h>
#include <errno.h>
-#include <string.h>
+#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
int main(int argc, char **argv)
{
- unsigned long long off;
- int err;
+ const char *path;
+ off_t length;
+ int rc;
+
+ if (argc != 3) {
+ fprintf(stderr, "Usage: %s PATH LENGTH\n",
+ program_invocation_short_name);
+ exit(EXIT_FAILURE);
+ }
- if (argc != 3) {
- printf("usage %s file bytes\n", argv[0]);
- return 1;
- }
+ path = argv[1];
+ length = strtoull(argv[2], NULL, 0);
- off = strtoull(argv[2], NULL, 0);
- err = truncate64(argv[1], off);
- if (err)
- printf("Error truncating %s to %lld: %s\n", argv[1], off,
- strerror(errno));
+ rc = truncate(path, length);
+ if (rc < 0) {
+ fprintf(stderr, "%s: cannot truncate '%s' to length %lld: %s\n",
+ program_invocation_short_name, path, (long long)length,
+ strerror(errno));
+ exit(EXIT_FAILURE);
+ }
- return err;
+ exit(EXIT_SUCCESS);
}