Move the run_fsx shell function into common/rc. Fix it to avoid
duplicate output on errors. Write the actual fsx parameters used into
$seqres.full instead of the BSIZE and PSIZE placeholders.
Include the symbolic fallocate mode in fsx error messages instead of the
numeric value. Use fprintf(stderr, ...) instead of warn() when
including strerror(errno) doesn't make sense.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
+run_fsx()
+{
+ echo fsx $@
+ args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"`
+ set -- $here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk
+ echo "$@" >>$seqres.full
+ rm -f $TEST_DIR/junk
+ "$@" 2>&1 | tee -a $seqres.full >$tmp.fsx
+ if [ ${PIPESTATUS[0]} -ne 0 ]; then
+ cat $tmp.fsx
+ exit 1
+ fi
+}
+
init_rc
################################################################################
init_rc
################################################################################
+#define test_fallocate(mode) __test_fallocate(mode, #mode)
+
-test_fallocate(int mode)
+__test_fallocate(int mode, const char *mode_str)
{
#ifdef HAVE_LINUX_FALLOC_H
int ret = 0;
if (!lite) {
if (fallocate(fd, mode, 0, 1) && errno == EOPNOTSUPP) {
if(!quiet)
{
#ifdef HAVE_LINUX_FALLOC_H
int ret = 0;
if (!lite) {
if (fallocate(fd, mode, 0, 1) && errno == EOPNOTSUPP) {
if(!quiet)
- warn("main: filesystem does not support "
- "fallocate mode 0x%x, disabling!\n", mode);
+ fprintf(stderr,
+ "main: filesystem does not support "
+ "fallocate mode %s, disabling!\n",
+ mode_str);
} else {
ret = 1;
ftruncate(fd, 0);
} else {
ret = 1;
ftruncate(fd, 0);
if (keep_size_calls)
keep_size_calls = test_fallocate(FALLOC_FL_KEEP_SIZE);
if (punch_hole_calls)
if (keep_size_calls)
keep_size_calls = test_fallocate(FALLOC_FL_KEEP_SIZE);
if (punch_hole_calls)
- punch_hole_calls = test_fallocate(FALLOC_FL_PUNCH_HOLE |
- FALLOC_FL_KEEP_SIZE);
+ punch_hole_calls = test_fallocate(FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE);
if (zero_range_calls)
zero_range_calls = test_fallocate(FALLOC_FL_ZERO_RANGE);
if (collapse_range_calls)
if (zero_range_calls)
zero_range_calls = test_fallocate(FALLOC_FL_ZERO_RANGE);
if (collapse_range_calls)
-run_fsx()
-{
- echo fsx $@ | tee -a $seqres.full
- args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"`
- rm -f $TEST_DIR/junk
- $here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk >>$seqres.full 2>&1
- if [ $? -ne 0 ]; then
- cat $seqres.full
- exit 1
- fi
-}
-
psize=`$here/src/feature -s`
bsize=`_min_dio_alignment $TEST_DEV`
psize=`$here/src/feature -s`
bsize=`_min_dio_alignment $TEST_DEV`
-run_fsx()
-{
- echo fsx $@ | tee -a $seqres.full
- args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"`
- rm -f $TEST_DIR/junk
- $here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk >>$seqres.full 2>&1
- if [ $? -ne 0 ]; then
- cat $seqres.full
- exit 1
- fi
-}
-
psize=`$here/src/feature -s`
bsize=`_min_dio_alignment $TEST_DEV`
psize=`$here/src/feature -s`
bsize=`_min_dio_alignment $TEST_DEV`