The following scenario can occur when running btrfs/066,
Task A Task B Task C
run_test()
- Execute _btrfs_stress_subvolume()
in a background shell.
_btrfs_stress_subvolme()
...
- fork & exec "mount"
Mount subvolume on directory in $TEST_DIR
- Wait for fsstress to finish do_mount()
- kill shell process executing - btrfs_mount()
_btrfs_stress_subvolume()
i.e. Task B.
- Init process becomes the parent
of "subvolume mount" task
i.e. Task C.
- In case subvolume is mounted
(which is not the case),
unmount it.
- Complete mounting subvolume
Hence on the completion of one iteration of run_test(), the subvolume
created inside the filesystem on $SCRATCH_DEV continues to be mounted on
$TEST_DIR/$seq.mnt. Subsequent invocations of run_test() (called for
remaining Btrfs profile configs) fail during _scratch_pool_mkfs.
Instead of killing the 'subvolume stress' task this commit makes
_btrfs_stress_subvolume() to break out of the loop when a file exists
on the filesystem. The commit also makes relevant changes to other
users of _btrfs_stress_subvolume() i.e. btrfs/060, btrfs/065,
btrfs/067 & btrfs/068.
Suggested-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
When testing xfs/073 with MKFS_OPTIONS="-m crc=1,finobt=1" set, it fails
due to extra warning about disabling finobt feature:
+warning: finobt not supported without CRC support, disabled.
Because xfs/073 disables crc unconditionally and finobt can not be
enabled either.
Fix it by explicitly disabling finobt as well.
Also remove all meta related mkfs options in _scratch_mkfs_xfs_opts() if
mkfs.xfs has no metadata support, not only the crc option. So that test
still passes on distros with such old binaries.
Suggested-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
The nfs4acl tests don't make sense anymore as they have been obsoleted
by richacls.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Rename the expected output files so that they match "$TEST_NAME.out*";
this makes the file names a bit more consistent.
Add $TEST_NAME.out and similar symlinks to .gitignore.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
xfs/006 has no requirements that are specific to XFS, so make it generic
and other filesystems could get some coverage too.
Along with the movement, I also added a test that removes all created
dirs, as that's how the original bug was found.
Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
btrfs/059.out should not be hardcoded to zlib, if compression method
is lzo, this case will fail wrongly, so here add a filter.
Signed-off-by: Wang Xiaoguang <wangxg.fnst@cn.fujitsu.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This is a test that performs simple I/O on dm error device, which
returns EIO on all I/O request.
This is motivated by an ext4 bug that crashes kernel on error path when
trying to update atime. Following kernel patch should fix the issue
ext4: fix NULL pointer dereference in ext4_mark_inode_dirty()
Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Since XFS dropped support for the NOCOW_FL flag, cut it out of the tests.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Ensure that refcountbt allocations during truncate operations come
from the per-AG reservation and are not charged to the transaction.
Reported-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This makes it so we don't get warnings about off64_t not being
defined when compiling the test program.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
For tests that only overwrite part of a file, only consider the number
of extents in the *rewritten* blocks when deciding if the FS
fragmentation performance is satisfactory.
(Also slip in a fix for xfs/127 so that it formats correctly when we
specify big blocksizes via MKFS_OPTIONS.)
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
The error message in newer btrfs utilities contains name of the
property, we want to filter it out so it matches golden output. There's
an optional parameter with property name that is matched against the
command output.
Signed-off-by: David Sterba <dsterba@suse.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
The function _need_to_be_root does not exists anymore as of commit
56ff01f471 ("xfstests: remove _need_to_be_root").
A v2 of the patch that added test btrfs/118 without calling this
function was sent but not picked [1], instead v1 was picked.
So fix this now.
[1] https://patchwork.kernel.org/patch/8354831/
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This test is only valid for CRC enabled XFS, and test fails with
MKFS_OPTIONS="-m crc=0" being set (no mount failure detected).
Fix it by adding _require_scratch_xfs_crc, which ensures scratch device
has CRC support and enabled.
Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
As of this kernel commit:
commit 73f34a5e2ced ("ext4: online defrag not supported with DAX")
online defrag operations for ext4 are disallowed when the filesystem is
mounted with the DAX option.
This causes several xfstests to fail because they expect the defrag
operation to change the file layout:
ext4/308 [failed, exit status 1] - output mismatch (see /root/xfstests/results//ext4/308.out.bad)
--- tests/ext4/308.out 2015-10-02 10:19:36.791795792 -0600
+++ /root/xfstests/results//ext4/308.out.bad 2016-02-17 16:20:52.330454602 -0700
@@ -23,659 +23,5 @@
50f924a5dc9b03609a4577f9f961414b SCRATCH_MNT/test.10
Perform compacting
50f924a5dc9b03609a4577f9f961414b SCRATCH_MNT/test.10
-Perform compacting, second pass
-50f924a5dc9b03609a4577f9f961414b SCRATCH_MNT/test.10
-Create file with 20 * 2 fragments
-wrote 1234/1234 bytes at offset 0
...
(Run 'diff -u tests/ext4/308.out /root/xfstests/results//ext4/308.out.bad' to see the entire diff)
generic/018 1s ... [failed, exit status 1] - output mismatch (see /root/xfstests/results//generic/018.out.bad)
--- tests/generic/018.out 2016-02-17 16:02:40.103656140 -0700
+++ /root/xfstests/results//generic/018.out.bad 2016-02-17 16:20:53.117459173 -0700
@@ -10,10 +10,6 @@
After: 1
Write backwards sync, but contiguous - should defrag to 1 extent
Before: in_range(5, 10)
-After: 1
-Write backwards sync leaving holes - defrag should do nothing
-Before: 16
-After: 16
...
(Run 'diff -u tests/generic/018.out /root/xfstests/results//generic/018.out.bad' to see the entire diff)
Avoid this by skipping over defrag tests if we are using ext4 + DAX.
Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Commit a94334afa2 ("common: filter warning messages from mkfs.ext4")
filtered warning messages from mke2fs stderr output but missed the
mke2fs version infomation message, and generic/135 still fails because
of this
QA output created by 135
+mke2fs 1.42.9 (28-Dec-2013)
0000000 1212 1212 1212 1212 1212 1212 1212 1212
So also filter out this message in _scratch_mkfs_ext4.
Reported-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>