aio: add regression test race between write and fcntl

perform AIO-DIO and fcntl(F_SETFL) concurently. Unaligned AIO likely
results in synchronization which makes the race window wider.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Dmitry Monakhov
2014-11-10 18:06:19 +11:00
committed by Dave Chinner
parent fd730cff44
commit 33e0889346
4 changed files with 204 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
#! /bin/bash
# FS QA Test No. 036
#
# CVE-2014-8086
# Run aio-dio-fcntl-race - test aio write race with O_DIRECT toggle
#
#-----------------------------------------------------------------------
# Copyright (c) 2014 Dmitry Monakhov. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#-----------------------------------------------------------------------
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.*
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# real QA test starts here
_supported_fs generic
_supported_os Linux
_require_test
_run_aiodio aio-dio-fcntl-race
exit $status
+2
View File
@@ -0,0 +1,2 @@
QA output created by 036
All tasks are spawned
+1
View File
@@ -38,6 +38,7 @@
033 auto quick rw
034 auto quick metadata log
035 auto quick
036 auto aio rw stress
053 acl repair auto quick
062 attr udf auto quick
068 other auto freeze dangerous stress