Dave Chinner [Sat, 9 Jun 2018 01:45:38 +0000 (11:45 +1000)]
fstests: make lsqa.pl work with SPDX tags
The regex matches used to dump the test headers are no longer valid,
so update them to work with the new test header format.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Dave Chinner [Sat, 9 Jun 2018 01:36:01 +0000 (11:36 +1000)]
fstests: convert top level files and tools to SPDX
Scripted conversion, see script in initial SPDX license commit
message. Many files required touch-ups after the script had run
because of the old and widely different formats. most touchups were
to remove excess empty comment lines the script left behind.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Dave Chinner [Sat, 9 Jun 2018 01:35:53 +0000 (11:35 +1000)]
fstests: convert remaining tests to SPDX license tags
Fully scripted conversion, see script in initial SPDX license commit
message.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Dave Chinner [Sat, 9 Jun 2018 01:35:50 +0000 (11:35 +1000)]
btrfs: convert tests to SPDX license tags
Fully scripted conversion, see script in initial SPDX license commit
message.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Dave Chinner [Sat, 9 Jun 2018 01:35:45 +0000 (11:35 +1000)]
xfs: convert tests to SPDX license tags
Fully scripted conversion, see script in initial SPDX license commit
message.
tests/xfs/044 was hand massaged to remove duplicate copyright and
divider lines before running the script.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Dave Chinner [Sat, 9 Jun 2018 01:35:42 +0000 (11:35 +1000)]
generic: convert tests to SPDX license tags
Fully scripted conversion, see script in initial SPDX license commit
message.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Dave Chinner [Sat, 9 Jun 2018 01:35:32 +0000 (11:35 +1000)]
fstests: convert new test template to SPDX tags
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Dave Chinner [Sat, 9 Jun 2018 01:34:49 +0000 (11:34 +1000)]
common: convert to SPDX license tags
These have been scripted conversions then cleaned up by hand as
there was no consistency to the formatting of the license headers in
the common/ directory. Author information was also removed (it's in
the git history) and so now the header format is consistently:
##/bin/bash
# SPDX-License-Identifier: GPL-2.0(+)
# Copyright (c) <date> <owner>. All Rights Reserved.
#
# <file description>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Dave Chinner [Sat, 9 Jun 2018 01:29:45 +0000 (11:29 +1000)]
fstests: Add LICENSES directory
In preparation for changing tests over to use SPDX tags, add the
initial licenses needed for the common/ and tests/ changeover to
the LICENSES/ directory. For this initial patch set, only the GPLv2
license text is required.
The tests and other common scripts will be converted to tags via a
script and, if necessary touched up to fix any warts the script
can't handle. The script is run on a target via:
for f in `git grep -l "GNU General" <target>` ; do
echo $f
cat $f | awk -f hdr.awk > $f.new
mv -f $f.new $f
done
This, unfortunately, changes the permissions of the files, so each
patch was post processed to remove the mode change fields from
the patches before they were committed. This preserves the file
modes, even though the files were replaced.
The awk script that dos all the substitution work is as follows:
$ cat hdr.awk
BEGIN {
hdr = 1
tag = "GPL-2.0"
ignore = 0
str = ""
cstr = ""
}
/^#[\!#][ ]*\/bin\/bash/ {
print $0
next
}
/^#[\!#][ ]*.*\/perl/ {
print $0
next
}
/any later version./ {
tag = "GPL-2.0+"
next
}
/^#[\-]{65}/ {
if (hdr == 1 && ignore == 0) {
ignore = 1
hdr = 0
} else if (ignore == 1) {
# use this to ignore empty comment line after license
ignore = 2
}
next
}
/This program is free software/ {
if (hdr == 1 && ignore == 0) {
ignore = 1
hdr = 0
}
next
}
/02110-1301[, ] *USA/ {
# use this to ignore empty comment line after license
if (ignore = 1) {
ignore = 2
}
next
}
/^#[ ]*Copyright/ {
if (cstr != "")
cstr = cstr "\n"
cstr = cstr $0
next
}
// {
if (ignore == 2) {
print "# SPDX-License-Identifier: " tag
print cstr "\n#"
print str
str=""
ignore = 3
}
if (ignore == 1) {
next
} else if (ignore == 3) {
# ignore trailing empty comment lines
if ($0 == "#")
next
ignore = 0
}
if (str != "")
str = str "\n"
str = str $0
}
END {
print str
}
$
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Darrick J. Wong [Thu, 7 Jun 2018 15:17:10 +0000 (08:17 -0700)]
generic: test swapfile creation, activation, and deactivation
Test swapfile activation and deactivation.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 5 Jun 2018 16:43:33 +0000 (09:43 -0700)]
xfs: make sure pretty printed geometry output matches
Make sure that all of our commands that can print geometry
information all print the /same/ information.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 5 Jun 2018 16:43:27 +0000 (09:43 -0700)]
xfs: abstract xfs_info into $XFS_INFO_PROG
Abstract calls to xfs_info into $XFS_INFO_PROG like we do for all
other xfs utilities.
[Eryu: require xfs_info to be present if FSTYP is xfs]
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 5 Jun 2018 16:43:14 +0000 (09:43 -0700)]
xfs/310: fix _require_scratch_nocheck ordering
In xfs/310 we have to _require_scratch_nocheck last because anything
else that calls _require_scratch (e.g. _require_xfs_scratch_rmapbt)
will create the "check scratch after test exit" file.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 5 Jun 2018 16:43:02 +0000 (09:43 -0700)]
xfs/122: fix sb_fname[XFSLABEL_MAX] in test
We recently redefined sb_fname's array length to use a symbolic
constant instead of a magic number, so update this test accordingly.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 5 Jun 2018 16:42:56 +0000 (09:42 -0700)]
xfs/439: don't check filesystem afterwards
We deliberately corrupted the scratch fs, so don't check it afterwards.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Tue, 5 Jun 2018 08:08:50 +0000 (11:08 +0300)]
generic/401: fix test in case of no filetype support
Xu Huan reported that this test fails on nfs in some setup.
Apparently, the assumptions made about xfs/ext* do not hold
for nfs.
Relax the verification of filetype not supported case to
allow either DT_UNKNOWN or actual file type on all files and
not only on special dir entires "." and "..".
Convert the unknown d_type replacement code from awk to bash
so it is a bit more readable and flexible.
Reported-by: Xu Huan <xuhuan.fnst@cn.fujitsu.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Tested-by: Xu Huan <xuhuan.fnst@cn.fujitsu.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Fri, 1 Jun 2018 10:44:16 +0000 (13:44 +0300)]
overlay: nicer report when features are not supported
Commit
ea7ad43 ("fstests: implement require of multiple overlayfs
features") changed the message when tests are not run due to missing
overlayfs feature.
Restore the check for existing module param before trying to mount
which restores the old message format, e.g.:
[not run] feature 'metacopy' not supported by overlay
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
xiaoli feng [Thu, 31 May 2018 04:10:14 +0000 (12:10 +0800)]
common/rc: skip atime related tests on CIFS
From the feedback of cifs developer, the behaviour of atime/noatime
for cifs is basically noatime always. So the atime related mount
options have no effect on cifs mounts. And Skip these tests on CIFS.
Signed-off-by: xiaoli feng <xifeng@redhat.com>
Acked-by: Steve French <smfrench@gmail.com>
Acked-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Xiao Yang [Wed, 30 May 2018 08:53:43 +0000 (16:53 +0800)]
xfs: Regression test for vulnerable directory integrity check
If a malicious XFS contains a block+ format directory wherein the
directory inode's core.mode is corrupted, and there are
subdirectories of the corrupted directory, an attempt to traverse up
the directory tree by running xfs_scrub will crash the kernel in
__xfs_dir3_data_check.
Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Xiao Yang [Mon, 4 Jun 2018 04:50:12 +0000 (12:50 +0800)]
common/rc: Fix _require_xfs_io_command for scrub probe
Currently, xfs_io scrub command doesn't allow the probe function
to have any parameter, so we remove the invalid parameter.
Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Dave Chinner [Mon, 28 May 2018 23:07:37 +0000 (09:07 +1000)]
check: fail tests if check/dmesg are not clean
Currently a test appears to pass even if it leaves a corrupt
filesystem behind, or a splat in the system logs that should not be
there. While the test is internally tracked as failed (and the
summary reports it as failed) the per-test output exits with a
success and so emits a completion time before the post-test checks
are run by the test harness. Rework the check code to report
post-test check failures as specific test failures rather than as
separate failure line items in the overall harness output.
Reworking where we emit the errors this also allows us to include
the post-test filesystem checking in the test runtime. This is
currently not accounted to the test and can be substantial. Hence
the real elapsed time of each test is not accurately reflected in
the time stats being reported and so regressions in filesystem
checking performance go unnoticed.
Changing the output reporting requires a complete reworking of the
main test check loop. It's a bunch of spaghetti at the moment
because it has post test reporting code at the end of the loop which
must run regardless of the test result. By moving the post test
reporting to the start of the next loop iteration, we can clean up
the code substantially by using continue directives where
appropriate.
Also, for cases where we haven't run the test or it's already been
marked as failed, don't bother running the filesystem/dmesg checks
for failure as we're already going to report the test as failed.
This touches almost all of the loop, so get rid of the remaining
4 space indents inside the loop while moving all this code around.
[Eryu: fixed wrong test seq name issue in xUnit report when test hit
"continue" in the check loop, e.g. notrun, with Dave ACKing the fix]
Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Vivek Goyal [Fri, 1 Jun 2018 12:59:58 +0000 (08:59 -0400)]
overlay: Add tests for overlay metadata only copy up feature
Add tests for metadata only copy up feature.
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Anand Jain [Tue, 29 May 2018 05:56:12 +0000 (13:56 +0800)]
btrfs: introduce btrfs/volume group
The btrfs/volume group represent a set of btrfs test-cases, which
shall intend to verify the relevant btrfs volume operations.
Under this new group all the existing btrfs/replace group would come
under, and also the device operations test cases which does not have
any group as of now. This group is helpful to verify the btrfs
volume related changes.
Run as
./check -g btrfs/volume
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Anand Jain [Fri, 1 Jun 2018 15:57:26 +0000 (23:57 +0800)]
btrfs: seed device delete test
Test case to verify that a seed device can be deleted
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Anand Jain [Fri, 1 Jun 2018 15:57:25 +0000 (23:57 +0800)]
btrfs: seed device replace test
Test case to verify that a seed device can be replaced
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Anand Jain [Fri, 1 Jun 2018 15:57:24 +0000 (23:57 +0800)]
btrfs: nested seed device test
Test case to verify that a sprout device can be a seed device
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Anand Jain [Fri, 1 Jun 2018 15:57:23 +0000 (23:57 +0800)]
btrfs: add seed sprout functionality test
Create a seed device and add the sprout device to it.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Mark Fasheh [Tue, 29 May 2018 22:34:30 +0000 (00:34 +0200)]
generic/009: don't run for btrfs if PAGE_SIZE > 4096
Btrfs has the same issue as XFS here in that the extent layout on a
> 4096 page size system will not match what is reflected in the test
output.
Signed-off-by: Mark Fasheh <mfasheh@suse.de>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Tue, 29 May 2018 16:56:01 +0000 (18:56 +0200)]
ext4/306: Fixup resize2fs usage
Use $RESIZE2FS_PROG instead of direct name to call program with full
path. Also add an appropriate feature test.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Tue, 29 May 2018 16:56:00 +0000 (18:56 +0200)]
ext4/010: Fixup resize2fs and dumpe2fs usage
Use $RESIZE2FS_PROG and $DUMPE2FS_PROG instead of names directly to
make progs be executed with full path. Also add proper feature test
macros.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Tue, 29 May 2018 16:55:59 +0000 (18:55 +0200)]
ext4/032: Fix up resize2fs usage
The test uses resize2fs(8) without proper feature test macro and
also without specifying full path to it. Fix that.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Tue, 29 May 2018 16:55:58 +0000 (18:55 +0200)]
xfs/310: Cleanup
Cleanup couple of things that were objected to when creating test
ext4/033 out of this one.
Use _require_scratch_nocheck instead of recreating scratch fs before
exiting. Avoid needless cleanup of dmhugedev on exit - _cleanup
takes care of that. Use _scratch_unmount where possible.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Tue, 29 May 2018 16:55:57 +0000 (18:55 +0200)]
ext4: Test for s_inodes_count overflow during fs resize
Test for overflow of s_inodes_count during filesystem resizing.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Tue, 29 May 2018 16:55:56 +0000 (18:55 +0200)]
dmhugedisk: Allow specifying of chunk size
Ext4 will want to use dmhugedisk infrastructure for testing resize
bugs. Ext4 fs images are rather sparse (especially with smaller
block sizes) so the current chunk size of 512 sectors leads to large
space consumption. Allow test to specify chunk size.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Tue, 29 May 2018 16:51:19 +0000 (18:51 +0200)]
fstests: Make ./new work for non-root user
Currently 'new' script sources common/config which tries to find
mkfs and fails if not found (which is likely for non-root user).
This is inconvenient as development usually does not happen as root.
In fact the vast majority of setup in common/config and common/rc is
not necessary for 'new'. Split out the necessary bits into new
common/test_names and use it in 'new'. Cleanup common/rc and
common/config now that they're only used from 'check' and 'setup'.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Dave Chinner [Tue, 29 May 2018 16:51:18 +0000 (18:51 +0200)]
fstests: get rid of set_prog_path
It's just a one line wrapper that adds complexity, remove it. Move
the couple of calls in tests to common/config, but leave the xfsdump
setup in place and just convert it.
[Eryu: add the missing CHECKBASHISMS_PROG definition, define
mkfs.btrfs and mkfs.f2fs with set_mkfs_prog_path_with_opts]
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Theodore Ts'o [Tue, 29 May 2018 19:01:28 +0000 (15:01 -0400)]
fstests: update the punch, collapse, insert, and zero groups
Update the group files to annotate those tests which have a
_require_xfs_io_command for punch, collapse, insert, and zero. This
makes it easier to exclude tests that use one of these fallocate
commands. Or if you want to specifically test for those fallocate
commands you can do this.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Eric Sandeen [Fri, 25 May 2018 14:00:59 +0000 (09:00 -0500)]
xfs/206: filter/fix for minor geometry reporting changes
The pending common geometry printing function has removed the fiddly
little differences between the various utilities, so now we'll need
to accommodate that in xfs/206, which looks at mkfs & growfs output.
all now print "internal log" vs. just "internal"
ascii-ci now always has a "," after it
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Bill O'Donnell <billodo@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Xiao Yang [Mon, 21 May 2018 05:42:00 +0000 (13:42 +0800)]
generic/484: Need another process to check record locks
According to fcntl(2) manpage, A single process always gets F_UNLCK
in the l_type field when using fcntl(F_GETLK) to acquire the
existing lock set by itself because it could convert the existing
lock to a new lock unconditionally. So we need another process to
check if the lock exists.
Also remove redundant exit(0).
Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Xiong Zhou <xzhou@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Wed, 23 May 2018 15:49:07 +0000 (08:49 -0700)]
xfs/447: fix typo
Fix a trivial typo that keeps barfing up:
./tests/xfs/447: line 60: /dev_null: Read-only file system
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Xiao Yang [Tue, 22 May 2018 09:49:59 +0000 (17:49 +0800)]
check: Make the test harness unmount fs when finishing a test
Finishing xfs/132 left a shutdown scratch fs and the test harness
didn't unmount the fs(because we told it not to check the fs) so the
test harness called by subsequent xfs/133 tried to "test -d
$SCRATCH_MNT" and received the IO error from the dead fs.
i.e. Running xfs/132 and xfs/133 together got the following error:
------------------------------------------------------------
...
xfs/132 1s ... 1s
xfs/133 1s ... [failed, exit status 1] - output mismatch (see /var/lib/xfstests/results//xfs/133.out.bad)
...
QA output created by 133
-Format and mount
-Corrupt filesystem
-Remount, try to append
-Write did not succeed (ok).
+SCRATCH_DEV=/dev/sda11 is mounted but not on SCRATCH_MNT=common/config: - aborting
+Already mounted result:
+/dev/sda11 /mnt/xfstests/scratch
...
------------------------------------------------------------
Even if we don't check fs, the test harness is supposed to unmount
fs and return an initial state before running the next test.
Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Omar Sandoval [Wed, 16 May 2018 20:38:49 +0000 (13:38 -0700)]
generic: test invalid swap file activation
Swap files cannot have holes, and they must at least two pages.
swapon(8) and mkswap(8) have stricter restrictions, so add versions
of those commands without any restrictions.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Omar Sandoval [Wed, 16 May 2018 20:38:48 +0000 (13:38 -0700)]
generic: add test for truncate/fpunch of an active swapfile
These should not be allowed.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Omar Sandoval [Wed, 16 May 2018 20:38:47 +0000 (13:38 -0700)]
generic: add test for dedupe on an active swapfile
Similar to generic/356 that makes sure we can't dedupe an active
swapfile.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Omar Sandoval [Tue, 22 May 2018 23:33:57 +0000 (16:33 -0700)]
generic: enable swapfile tests on Btrfs
Commit
8c96cfbfe530 ("generic/35[67]: disable swapfile tests on
Btrfs") disabled the swapfile tests on Btrfs because it did not
support swapfiles at the time. Now that we're adding support, we
want these tests to run, but they don't. _require_scratch_swapfile
always fails for Btrfs because swapfiles on Btrfs must be set to
nocow. After fixing that, generic/356 and generic/357 fail for the
same reason. After fixing _that_, both tests still fail because we
don't allow reflinking a non-checksummed extent (which nocow
implies) to a checksummed extent.
Add a helper for formatting a swap file which does the chattr, and
chattr the second file, which gets these tests running on kernels
supporting Btrfs swapfiles.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Omar Sandoval [Wed, 16 May 2018 20:38:45 +0000 (13:38 -0700)]
fstests: create swap group
I'm going to add a bunch of tests for swap files, so create a group
for them and add the existing tests.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Mon, 21 May 2018 16:07:34 +0000 (09:07 -0700)]
generic/475: fix confusing comment
The comment about the dmerror switcheroo is hard to understand and
wrong. Fix both problems by rewriting it.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Theodore Ts'o [Sun, 20 May 2018 18:45:17 +0000 (14:45 -0400)]
generic/490: fix cleanup function
generic/490 fails because cleanup tries to delete . and .. since $tmp
is left unset, and so "rm -f $tmp.*" does nothing useful. Instead
define $tmp and delete temp files created by seek_sanity_test.
[Eryu: define $tmp and remove $tmp.* too on cleanup]
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Zorro Lang [Sun, 20 May 2018 16:22:02 +0000 (00:22 +0800)]
common/quota: sort lines of repquota output
The golden image of some cases (e.g: generic/305 generic/326
generic/327 generic/328 xfs/214 xfs/330 and xfs/440) depend on the
output of repquota() function.
When it reports multi-users, we can't control the order of lines,
then always hit failures likes:
...
Create the original files
-root 3072 0 0
nobody 0 0 0
fsgqa 0 0 0
+root 3072 0 0
...
So sort the lines to make sure it won't break the golden image.
Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Theodore Ts'o [Sun, 20 May 2018 19:46:08 +0000 (15:46 -0400)]
generic: drop test 472
From Goldwyn Rodrigues <rgoldwyn@suse.de>:
"From earlier discussions, In between errors of a direct I/O cannot
be handled correctly and may need a lot of tracking that it is not
worth performing.
It would be better to drop this test case and add in the documentation
that a direct I/O error could mean that the write() may or may not have
occurred and underlying data may be inconsistent."
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Theodore Ts'o [Sat, 19 May 2018 21:47:19 +0000 (17:47 -0400)]
generic: add tests 405 and 459 to the group 'thin'
Currently the only test in group 'thin' is 347. On some recent
kernels tests that use dm-thin causing kernel crashes, so it's useful
to be able to be exclude all tests that use dm-thin.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Theodore Ts'o [Sat, 19 May 2018 17:43:10 +0000 (13:43 -0400)]
report: make sure control charcters are encoded in xUnit report
Control characters (such as backspace, used in progress reports by
mkfs.ext4, for example) can make Python's XML parsers choke, claiming
that it is an invalid XML document.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Fri, 18 May 2018 08:02:39 +0000 (10:02 +0200)]
generic: Handle missing [gs]etcap tools
Add proper requires for getcap and setcap tools to tests that need
them. Also define standard variables GETCAP_PROG and SETCAP_PROG.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Eric Sandeen [Thu, 17 May 2018 15:28:26 +0000 (10:28 -0500)]
generic: test online label ioctl
This tests the online label ioctl that btrfs has, which has been
recently proposed for XFS.
To run, it requires an updated xfs_io with the label command and a
filesystem that supports it
A slight change here to _require_xfs_io_command as well, so that
tests which simply fail with "Inappropriate ioctl" can be caught in
the common case.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Mon, 14 May 2018 05:49:49 +0000 (08:49 +0300)]
generic/459: use xfs_freeze instead of fsfreeze
This is what all other tests use as well as _require_freeze
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Xiao Yang [Thu, 17 May 2018 03:32:27 +0000 (11:32 +0800)]
generic/486: Get rid of the redundant error=%d printing
1) Without the fix, perror() can indicate the actual error(ENODATA).
2) After calling perror() and redirecting the output of perror()
to a file, errno seems to be set to EINVAL unexpectedly.
See the following mail for detailed info:
https://www.spinics.net/lists/fstests/msg09675.html
Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Mon, 14 May 2018 17:03:51 +0000 (19:03 +0200)]
common/quota: Fix _qmount_options for ext4 journalled quotas
_qmount_options didn't properly replace ext[34] journalled quotas
mount options. As such the mount option string got garbled and the
test (e.g. generic/379) failed.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Mon, 14 May 2018 17:03:49 +0000 (19:03 +0200)]
common/quota: Make project quota handling work for ext2 & ext3
Project quota can work for ext2 & ext3 the same way as for ext4.
Handle them properly as currently the tests just fail because of
unknown prjquota mount option. After this patch, tests will be "not
run" because ext4 driver refuses to use project quota mount options
for "old" fs types.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Mon, 14 May 2018 05:49:51 +0000 (08:49 +0300)]
generic: test first read with freeze right after mount
With ext4, this leads to freeze proection bypass WARN_ON in
ext4_journal_check_start.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Mon, 14 May 2018 05:49:50 +0000 (08:49 +0300)]
fstests: define and use TIMEOUT_PROG
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jan Kara [Mon, 14 May 2018 09:47:07 +0000 (11:47 +0200)]
generic: Add SEEK_DATA tests for offsets in the middle of holes
ext4 had a bug for files with indirect extents where it wrongly
reported a size of a hole in some cases and thus SEEK_DATA
implementation could skip some data in a file. Test for that. The
problem is fixed by patch "ext4: Fix hole length detection in
ext4_ind_map_blocks()".
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Filipe Manana [Fri, 11 May 2018 15:43:43 +0000 (16:43 +0100)]
generic: test for fsync of file with xattrs
Test that xattrs are not lost after calling fsync multiple times
with a filesystem commit in between the fsync calls.
This test is motivated by a bug found in btrfs which is fixed by a
patch for the linux kernel titled:
Btrfs: fix xattr loss after power failure
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Dave Chinner [Fri, 11 May 2018 02:11:52 +0000 (12:11 +1000)]
xfs: test mount vs superblock shrinker races
Test case for superblock shrinkers running while the filesystem is
being set up and/or torn down and tripping over inconsistent state.
Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Omar Sandoval [Thu, 10 May 2018 06:21:55 +0000 (23:21 -0700)]
btrfs: test ENOSPC caused by many orphan items
Btrfs has a bug where we can prematurely ENOSPC if we have lots of
orphaned files, i.e., deleted files which are still open. Add a test
which repeatedly creates and deletes a file while keeping all of the
file descriptors open. This should succeed but doesn't on Btrfs
without the fix.
[Eryu: use multi_open_unlink command to keep files open & unlinked
instead of shell scripts]
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Zorro Lang [Mon, 14 May 2018 14:41:53 +0000 (22:41 +0800)]
xfs: skip growfs test on large device
When test on large SCRATCH_DEV, growing a small XFS to huge size is
a horrible thing (e.g grow 128M to 500T) and it doesn't add any more
test coverage. So skip this kind of tests if LARGE_SCRATCH_DEV is
yes.
Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Sun, 13 May 2018 16:03:59 +0000 (19:03 +0300)]
generic/484: add missing _require_test_program
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jeff Layton [Wed, 9 May 2018 14:10:58 +0000 (10:10 -0400)]
btrfs: add test for seeing unseen fsync errors on newly open files
This adds a regression test for the following kernel patch:
b4678df184b3 ("errseq: Always report a writeback error once")
This is motivated by some rather odd behavior done by the PostgreSQL
project. The main database writers will offload the fsync calls to a
separate process, which can open files after a writeback error has
already occurred.
This used to work with older kernels that reported the error to only
one fd, but with the errseq_t changes we lost the ability to see
errors that occurred before the open. The above patch restores that
behavior.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jeff Layton [Tue, 8 May 2018 12:52:24 +0000 (08:52 -0400)]
generic: test for seeing unseen fsync errors on newly open files
This adds a regression test for the following kernel patch:
b4678df184b3 ("errseq: Always report a writeback error once")
This is motivated by some rather odd behavior done by the PostgreSQL
project. The main database writers will offload the fsync calls to a
separate process, which can open files after a writeback error has
already occurred.
This used to work with older kernels that reported the error to only
one fd, but with the errseq_t changes we lost the ability to see
errors that occurred before the open. The above patch restores that
behavior.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 8 May 2018 16:53:59 +0000 (09:53 -0700)]
xfs: checkbashisms in all script files
Find all the /bin/sh scripts in xfsprogs and check for bashisms.
Cc: sandeen@sandeen.net
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Sun, 6 May 2018 06:36:08 +0000 (09:36 +0300)]
generic/{159,160}: require chattr instead of lsattr
The tests _require_test_lsattr, but don't actually use lsattr. They
use chattr +i/-i, so require the appropriate command.
_require_test_lsattr checks the FS_IOC_GETFLAGS ioctl on a directory
and that is not supported in overlayfs. _require_chattr checks the
ioctl on a file, which is supported in overlayfs, so this change
makes the tests run and pass on overlayfs.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Sun, 6 May 2018 06:36:07 +0000 (09:36 +0300)]
common/rc: decouple xfs_io flink check from xfs_io -T check
The 3 tests that _require_xfs_io_command "flink", actually require
O_TMPFILE support and flink command, but the former is far unlikely
to be missing. The test btrfs/058 doesn't even use the flink
command.
When running these tests on a filesystem that does not support
O_TMPFILE (e.g. overlayfs) the result is not very infomative:
generic/004 1s ... [not run] xfs_io flink failed (old kernel/wrong fs?)
Decouple the requirements for "flink" command and "-T" command line
flag and require the former explicitly in tests that use it.
As a result the report is now more informative:
generic/004 1s ... [not run] O_TMPFILE is not supported
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Dave Chinner [Mon, 7 May 2018 23:05:51 +0000 (09:05 +1000)]
xfs: test inobt/on disk free state mismatches
Fuzzing has recently uncovered a couple of conditions where we don't
detect corruptions that reallocate already allocated inodes. This
test exercises those cases, and checks that we shut down the
filesystem appropriately when such a corruption occurs.
Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Dave Chinner [Sun, 6 May 2018 23:05:35 +0000 (09:05 +1000)]
fstests: many dangerous+auto tests are not dangerous anymore
There are a bunch of tests that are run by the auto group that are
marked dangerous. This was done because the test exercised a crash
or other fatal error that has since been fixed. Remove the dangerous
tag from the auto tests that pass on a 4.17-rc3 kernel as they are
not dangerous anymore.
Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Dave Chinner [Sun, 6 May 2018 22:45:31 +0000 (08:45 +1000)]
fstests: remove old electric fence support
Just not used anymore.
Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Fri, 4 May 2018 09:41:31 +0000 (12:41 +0300)]
overlay: test multiple origin references to the same lower file
Multiple origin references to the same lower file from upper files
that are not hardlinks will falsely return the same st_ino/st_dev
for two different overlay files and will cause 'diff' to falsely
report that content of files is the same when it is not.
This test checks that overlayfs detects and fails lookup of a
multiply referenced origin.
The check for multiply referenced origin was a by-product of kernel
commit
31747eda41ef ("ovl: hash directory inodes for fsnotify")
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Fri, 4 May 2018 09:41:30 +0000 (12:41 +0300)]
overlay/049: update fix commit id
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Sat, 5 May 2018 10:31:22 +0000 (13:31 +0300)]
xfs/132: remove duplicate test
Test description says: "This is the same test as generic/156 except
that we also check the inode reflink flag.", only since commit
f1c3fee ("xfs: remove NOCOW_FL testing from test") it is almost
exactly the same test as generic/156.
almost - because since xfs/132 diverged from generic/156 the change
911efb0 ("reflink: change to relative margins") is only applied to
the original test.
Anyway, there doesn't seem to be a reason to keep this duplicated
test anymore, so remove it.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Dave Chinner [Sat, 5 May 2018 00:19:51 +0000 (10:19 +1000)]
README: document the new default run mode
Also document the new way to run all tests (i.e. check -g all) and
clean up all the stray whitespace in the readme file.
Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Dave Chinner [Fri, 4 May 2018 00:05:09 +0000 (10:05 +1000)]
check: run auto test group by default
Everyone who starts using fstests runs "check" without parameters,
and then has problems with it running dangerous tests. most people
just want fstests to act as a regression test suite, not a fuzzer or
exercise known crash conditions. Hence make the default behaviour to
be "run the auto group" rather than "run every test".
To enable people to run all tests easily (if they really want to)
add a special group keyword named "all". This wildcard will trigger
selecting all the tests in fstests as per the original "check
without parameters" behaviour.
Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Theodore Ts'o [Thu, 3 May 2018 05:07:28 +0000 (01:07 -0400)]
build: Use the original install-sh file from SGI
The install-sh file is much more efficient than the libtool version
(50% faster wall clock time; much more than that when running in a
qemu emulation build environment). There doesn't seem to be any
real need for the libtool version, so bring back the original
install-sh script.
[Eryu: move install-sh to include dir and copy it from there after
libtoolize in Makefile]
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 1 May 2018 15:40:17 +0000 (08:40 -0700)]
xfs: fix blocktrash fuzzers
The blocktrash fuzz tests for xfs will try to mount and write to the
filesystem after corrupting it. However, the mount may not necessarily
succeed, in which case we must not write junk to the root filesystem.
Use the new _try_scratch_mount to guard against that.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 1 May 2018 15:40:03 +0000 (08:40 -0700)]
xfs/422: add fsstress to the freeze-and-rmap-repair race test
Add fsstress to the pile of things that we race with rmap repair to
ensure that the rmap repair isolates the filesystem correctly while it
is doing its repairs.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 1 May 2018 15:39:57 +0000 (08:39 -0700)]
generic/453: test creation of malicious directory entries
Create malicious . and .. entries (you didn't see the zero-width
joiners at the end, did you?) in a directory to see if scrub will pick
them up.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 1 May 2018 15:39:51 +0000 (08:39 -0700)]
generic/45[34]: test unicode confusables
Test if a filesystem will allow us to create names with easily
confusable unicode sequences (character spoofing) and, if on XFS,
whether or not xfs_scrub will notice.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 1 May 2018 15:39:45 +0000 (08:39 -0700)]
generic/45[34]: check unicode names only if xfs_scrub linked against libicu
Since we've rewriting the xfs_scrub Unicode name scanner to use libicu
to detect potential spoof names, change our check for unicode-enabled
name scanning xfs_scrub to look for libicu instead of libunistring,
adjust the golden output to reflect the new library's detection
capabilities and make sure we get all the scrub output by invoking with
-v.
Note that this requires xfsprogs 4.16 or newer; since xfs_scrub is (for
now) an experimental program, we don't care about breaking backwards
compatibility.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 1 May 2018 15:39:39 +0000 (08:39 -0700)]
generic/45[34]: add unicode directional override checks
Try injecting a Unicode directional override character in the middle of
a name to see if the fs can handle it / xfs_scrub will complain.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Darrick J. Wong [Tue, 1 May 2018 15:39:26 +0000 (08:39 -0700)]
generic: test XATTR_REPLACE doesn't take the fs down
Kanda Motohiro reported that expanding a tiny xattr into a large
xattr fails on XFS because we remove the tiny xattr from a shortform
fork and then try to re-add it after converting the fork to extents
format having not removed the ATTR_REPLACE flag. This fails because
the attr is no longer present, causing a fs shutdown.
[Eryu: introduce function "fail" and use it where appropriate]
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199119
Reported-by: kanda.motohiro@gmail.com
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Eric Biggers [Mon, 30 Apr 2018 22:17:01 +0000 (15:17 -0700)]
generic: test exceeding max file size via INSERT_RANGE
Test how the "insert range" fallocate operation interacts with the
maximum file size (s_maxbytes).
- Shift extents past the max file size (exposes an ext4 bug).
- Increase i_size past the max file size (exposes an xfs bug).
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Jeff Layton [Fri, 27 Apr 2018 16:34:59 +0000 (12:34 -0400)]
src/fsync-err: don't truncate files on second open
...and no need for O_CREAT flag.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Xiong Zhou [Mon, 23 Apr 2018 02:42:48 +0000 (10:42 +0800)]
generic: test record locks across execve in multithread process
POSIX requires that record locks are preserved across an execve(2).
But currently the locks are released if process is multithreaded at
the time that execve is called.
As Jeff Layton wrote in his patch:
"
In that case, we'll end up unsharing the files_struct but the locks
will still have their fl_owner set to the address of the old one.
Eventually, when the other threads die and the last reference to the
old files_struct is put, any POSIX locks get torn down since it
looks like a close occurred on them.
The result is that all of your open files will be intact with none
of the locks you held before execve.
"
Add a new regression test for this particular case.
[Eryu: rewrite commit log and test description]
Signed-off-by: Xiong Zhou <xzhou@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Anand Jain [Thu, 19 Apr 2018 16:03:37 +0000 (00:03 +0800)]
btrfs/011: cleanup the functions
Use common helper functions where needed. By doing this it improves
code readability and debugging of it.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Thu, 26 Apr 2018 05:53:27 +0000 (23:53 -0600)]
overlay/04{1,3,4}: enable xino feature
These tests check for constant inode number on copy up with
nonsamefs layer configuration. This problem is fixes only when
opting-in with the xino=on mount option, so let the tests enable the
mount option on new kernels and notrun on old kernels.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Thu, 26 Apr 2018 05:53:26 +0000 (23:53 -0600)]
overlay/043: require and enable redirect_dir
This test renames a merge directory so it needs to enable
redirect_dir feature, which is not enabled by default.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Amir Goldstein [Thu, 26 Apr 2018 05:53:25 +0000 (23:53 -0600)]
overlay/041: fix call to _overlay_check_scratch_dirs
_overlay_check_scratch_dirs needs to base scratch fs to be mounted,
so only unmount overlay before check.
Remove redundant definition of upperdir/workdir path, which also
uses hardcoded path instead of the config vars OVL_UPPER/OVL_WORK.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Brian Foster [Thu, 26 Apr 2018 12:04:44 +0000 (08:04 -0400)]
xfs: filestream allocator inode use-after-free test
The XFS filestreams allocator caches dir inode -> agno mappings in
an MRU mechanism that holds elements in memory for an amount of time
and then cleans up expired elements in the background. The elements
typically held inode pointers without holding a reference to the
associated inode. This means that if the inode is reclaimed before
an expired entry is cleaned up, the MRU reaper can access freed
memory and cause a panic.
Test for this problem by performing continuous filestreams
allocations under short-lived parent directory inodes. This will
produce KASAN use-after-free splats if enabled during the test.
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Anand Jain [Tue, 17 Apr 2018 14:56:40 +0000 (22:56 +0800)]
btrfs/130: make it workable on small systems
This test case takes a long time to complete at the default
LOAD_FACTOR=1, so reduce the nr_extents to 256, so for larger
systems it can still use higher LOAD_FACTOR.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Anand Jain [Tue, 17 Apr 2018 14:55:37 +0000 (22:55 +0800)]
btrfs/130: fix Invalid argument
btrfs-progs patch[1] replaced read(2) write(2) with splice(2) and
caused the append-redirect to stop working.
Before:
btrfs send /btrfs/ro_send > /dev/null
At subvol /btrfs/ro_snap
btrfs send /btrfs/ro_send >> /dev/null
At subvol /btrfs/ro_snap
After:
btrfs send /btrfs/ro_send > /dev/null
At subvol /btrfs/ro_snap
btrfs send /btrfs/ro_send >> /dev/null
At subvol /btrfs/ro_snap
ERROR: failed to read stream from kernel: Invalid argument
Further in the test case the line..
btrfs/130
::
_run_btrfs_util_prog send $SCRATCH_MNT/ro_snap > /dev/null 2>&1
which intended to redirect send output to /dev/null, but ended up
append redirect to the $seqres.full file. And so this test case
failed as 'Invalid argument' for sometime now.
Still as append of a btrfs send output doesn't make sense, so fix
the fstests.
Also adds logs going into $seqres.full.
[1]
ba23855cdc8961bbaef1fcad4854d494cdb3afd3
btrfs-progs: send: use splice syscall instead of read/write to transfer buffer
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Misono Tomohiro [Mon, 23 Apr 2018 05:23:14 +0000 (14:23 +0900)]
common/rc: move rm out from if block to always delete kmemleak temp file
Otherwise, *.kmemleak.tmp may remain in result folder if kmemleak is on.
Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Omar Sandoval [Thu, 12 Apr 2018 05:07:29 +0000 (22:07 -0700)]
common/rc: raise btrfs mixed mode threshold to 1GB
generic/427 creates a 256 MB filesystem and then writes a 200 MB file,
which fails on Btrfs if mixed mode is not enabled. Raise the threshold
to 1GB, which is where we typically recommend mixed mode.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Omar Sandoval [Thu, 12 Apr 2018 05:07:28 +0000 (22:07 -0700)]
src/aio-dio-eof-race: handle aio pwrite errors and short reads
generic/427 fails on Btrfs with a cryptic "pread: Success" message. This
is because an aio pwrite fails with ENOSPC, so the file isn't as long as
we expect it to be. Make sure we check the result of the aio writes and
also print a more explicit message for short reads (which are
technically valid but in practice shouldn't happen for this test case).
Now the test fails with a much more informative "pwrite: No space left
on device".
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>