54 lines
1.0 KiB
Bash
Executable File
54 lines
1.0 KiB
Bash
Executable File
#!/bin/sh -f
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (c) 2005 Silicon Graphics, Inc. All Rights Reserved.
|
|
#
|
|
|
|
OPTS=""
|
|
NOBYTES=false
|
|
PREALLOC=false
|
|
VERBOSE=false
|
|
VERSION=false
|
|
XFS_IO=`dirname $0`"/xfs_io -p xfs_mkfile"
|
|
USAGE="Usage: xfs_mkfile [-npvV] size file..."
|
|
|
|
while getopts "npvV" c
|
|
do
|
|
case $c in
|
|
n) NOBYTES=true;;
|
|
p) PREALLOC=true;;
|
|
v) VERBOSE=true;;
|
|
V) VERSION=true;;
|
|
\?) echo $USAGE 1>&2
|
|
exit 2
|
|
;;
|
|
esac
|
|
done
|
|
$VERSION && $XFS_IO -V
|
|
|
|
shift `expr $OPTIND - 1`
|
|
[ "$1" != "" ] || exit 0
|
|
SIZE="$1"
|
|
ERRORS=0
|
|
shift
|
|
|
|
while [ "$1" != "" ]
|
|
do
|
|
if $VERBOSE ; then
|
|
$PREALLOC && echo "$1 $SIZE bytes pre-allocated"
|
|
$PREALLOC || echo "$1 $SIZE bytes"
|
|
fi
|
|
if $NOBYTES ; then
|
|
$XFS_IO -ft -c "truncate $SIZE" -- "$1"
|
|
elif $PREALLOC ; then
|
|
$XFS_IO -ftd -c "resvsp 0 $SIZE" \
|
|
-c "pwrite -q -S0 -b256k 0 $SIZE" \
|
|
-c "truncate $SIZE" -- "$1"
|
|
else
|
|
$XFS_IO -ftd -c "pwrite -q -S0 -b256k 0 $SIZE" \
|
|
-c "truncate $SIZE" -- "$1"
|
|
fi
|
|
[ $? -eq 0 ] || ERRORS=`expr $ERRORS + 1`
|
|
shift
|
|
done
|
|
exit $ERRORS
|