#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2017 SUSE.  All Rights Reserved.
#
# FS QA Test 438
#
# This is a regression test for kernel patch
#   "ext4: Fix data corruption for mmap writes"
#
# The problem this test checks for is when too much is zeroed in the tail
# page that gets written out just while the file gets extended and written
# to through mmap.
#
# Based on test program by Michael Zimmer <michael@swarm64.com>
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"

here=`pwd`
tmp=/tmp/$$
status=1	# failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15

_cleanup()
{
	cd /
	rm -f $tmp.*
	rm -f $FILE
}

# get standard environment, filters and checks
. ./common/rc
. ./common/filter

# remove previous $seqres.full before test
rm -f $seqres.full

# Modify as appropriate.
_supported_fs generic
_require_test
_require_test_program "t_mmap_fallocate"

# real QA test starts here
FILE=$TEST_DIR/testfile_fallocate
# Make sure file exists
echo >$FILE
# Force frequent writeback of the file
(
	trap "STOP=1" SIGTERM
	STOP=0
	while [ $STOP -eq 0 ]; do
		$XFS_IO_PROG -c fsync $FILE
	done
)&
SYNCPID=$!

# Run the test
$here/src/t_mmap_fallocate $FILE 256 && echo "Silence is golden"

kill -TERM $SYNCPID
wait $SYNCPID

# success, all done
status=0
exit
