Commit Graph

4542 Commits

Author SHA1 Message Date
Darrick J. Wong 45b9734b98 common: move _scratch_metadump to common/xfs
_scratch_metadump is really an xfs-specific dump helper, so move it to
common/xfs, add 'xfs' to the name, and convert all users.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
2021-03-21 21:31:32 +08:00
Darrick J. Wong d4811ae1ff common: capture metadump output if xfs filesystem check fails
Capture metadump output when various userspace repair and checker tools
fail or indicate corruption, to aid in debugging.  We don't bother to
annotate xfs_check because it's bitrotting.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
2021-03-21 21:31:28 +08:00
Filipe Manana 7c476f1890 btrfs/232: fix umount failure due to fsstress still running
We start a process that runs fsstress, then kill the process, wait for it
to die and then end the test, where we attempt to unmount the fs which
often fails because the fsstress subcommand started by the process is
still running and using the mount point. This results in a test failure:

  btrfs/232 1s ... umount: /home/fdmanana/btrfs-tests/scratch_1: target is busy.
  _check_btrfs_filesystem: filesystem on /dev/sdc is inconsistent
  (see /home/fdmanana/git/hub/xfstests/results//btrfs/232.full for details)

Fix that by adding a trap to the writer() function.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-21 21:13:30 +08:00
Yang Xu 3d15d3fe85 src/chprojid_fail.c: Fix undefined compile error on old kernel
On old kernel, linux/fs.h doesn't include FS_IOC_FSGETXATTR and FS_IOC_FSGETXATTR
ioctl flag. It also doesn't include fsxattr struct. To fix this error, just
use global.h like fsstress.c.

Signed-off-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-20 16:37:38 +08:00
Filipe Manana 4a2683ce3e btrfs: add test for cases when a dio write has to fallback to a buffered write
Test cases where a direct IO write, with O_DSYNC, can not be done and has
to fallback to a buffered write.

This is motivated by the fact we don't have existing tests for these cases
and in fact we had a regression for one case in the 5.10 kernel. This was
the case when doing a direct IO write, with O_DSYNC, against a file offset
that is not aligned to the filesystem's block size, which resulted in
triggering an assertion failure when btrfs is built with assertions enabled
(CONFIG_BTRFS_ASSERT=y). One openSUSE Tumbleweed user hit this frequently
when using Docker and DB2.

The kernel commit in 5.10 that introduced the regression was commit
0eb79294dbe328 ("btrfs: dio iomap DSYNC workaround")). In kernel 5.11 the
regression fixed, by pure chance, by commit ecfdc08b8cc65d ("btrfs: remove
dio iomap DSYNC workaround"). Since the commit that fixed the bug in 5.11
was dependent on a large patchset, a special and simple fix was added to
the stable kernel 5.10.18 by commit a6703c71153438 ("btrfs: fix crash after
non-aligned direct IO write with O_DSYNC").

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-18 01:40:01 +08:00
Filipe Manana 40f8dc416a btrfs: test delayed subvolume deletion on mount and remount
Test that subvolume deletion is resumed on RW mounts, that it is not
performed on RO mounts and that after remounting a filesystem from RO
to RW mode, it is also performed.

This triggers a regression introduced in kernel 5.11 which is fixed
by a patch that has the following subject:

   "btrfs: fix subvolume/snapshot deletion not triggered on mount"

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-18 01:39:26 +08:00
Max Reitz 8275832d67 common/rc: virtiofs does not support atime options
As documented in Documentation/filesystems/virtiofs.rst (in the Linux
tree), virtiofs ignores atime-related mount options.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Vladimir Zapolskiy <vladimir@tuxera.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-17 00:21:34 +08:00
Darrick J. Wong f6ddaf130d xfs: test delalloc quota leak when chprojid fails
This is a regression test for a bug in the XFS implementation of
FSSETXATTR.  When we try to change a file's project id, the quota
reservation code will update the incore quota reservations for delayed
allocation blocks.  Unfortunately, it does this before we finish
validating all the FSSETXATTR parameters, which means that if we decide
to bail out, we also fail to undo the incore changes.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-15 01:51:35 +08:00
Darrick J. Wong 01b30c9da9 generic: test file writers racing with FIDEDUPERANGE
Create a test to make sure that dedupe actually locks the file ranges
correctly before starting the content comparison and keeps them locked
until the operation completes.

[Eryu: added .gitignore entry, required "deduperace" binary in test]

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-15 01:38:09 +08:00
Darrick J. Wong 8df851f5a1 xfs/122: fix test for xfs_attr_shortform_t conversion
The typedef xfs_attr_shortform_t was converted to a struct in 5.10.
Update this test to pass.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-15 00:54:03 +08:00
Darrick J. Wong 1e3cf5aeb5 xfs: test quota softlimit warning functionality
Make sure that quota softlimits work, which is to say that one can
exceed the softlimit up to warnlimit times before it starts enforcing
that.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-15 00:53:12 +08:00
Darrick J. Wong 4f4737df70 common/filter: refactor quota report filtering
xfs/299 and xfs/050 share the same function to filter quota reporting
into a format suitable for the golden output.  Refactor this so that we
can use it in a new test.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-15 00:50:06 +08:00
Darrick J. Wong cef0ac422b xfs: test mkfs min log size calculation w/ rt volumes
In "mkfs: set required parts of the realtime geometry before computing
log geometry" we made sure that mkfs set up enough of the fs geometry to
compute the minimum xfs log size correctly when formatting the
filesystem.  This is the regression test for that issue.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-15 00:34:59 +08:00
Darrick J. Wong f99e436241 generic: test reflink and copy_file_range behavior with O_SYNC and FS_XFLAG_SYNC files
Add two regression tests to make sure that FICLONERANGE and the splice
based copy_file_range actually flush all data and metadata to disk
before the call ends.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-14 23:16:43 +08:00
Darrick J. Wong 42484d90a0 xfs: test regression in xfs_bmap_validate_extent
This is a regression test to make sure that we can have realtime files
with xattr blocks and not trip the verifiers.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-14 22:57:47 +08:00
Darrick J. Wong 49a59dbfed fstests: remove DMAPI support from build system
Since we've axed all the DMAPI tests, get rid of the build system
support too.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-14 22:25:46 +08:00
Darrick J. Wong 6497ede7ad fstests: remove DMAPI tests
Upstream XFS has never supported DMAPI, so remove the tests for this
feature.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-14 22:24:48 +08:00
Darrick J. Wong 0ea70dceec xfs: test fallocate ops when rt extent size is and isn't a power of 2
Make sure that fallocate works when the rt extent size is and isn't a
power of 2.

[Eryu: require filefrag command, add _require_loop, use xfs_io to do
truncate]

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-14 22:09:42 +08:00
Darrick J. Wong 69a5de8289 fstests: remove libattr dependencies
Now that we don't have any libattr dependencies anymore, get rid of all
the build system hooks.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-14 21:29:12 +08:00
Darrick J. Wong f5c3de7d2f fsstress: get rid of attr_list
attr_list is deprecated, so just call llistxattr directly.  This is a
bit involved, since attr_remove_f was highly dependent on libattr
structures.  Note that attr_list uses llistxattr internally and
llistxattr is limited to XATTR_LIST_MAX, so this doesn't result in any
loss of functionality.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-14 21:24:10 +08:00
Theodore Ts'o c532a65528 generic: clean up tests using fio
During the code review for a test to exercises AIO/DIO into unwritten
space, a number of changes were requested that were also applicable to
generic/299 and generic/300 (from which the aforementioned test was
patterned).  For example, the use of run_check, which is deprecated,
was dropped.  In addition, we now rely on the test runner to unmount
the scratch file system.

Also fix a nit I found in generic/095, which resulted in debugging
information in the $seqres.full to get lost when "fio ...
--output=$seqres.full" is run.

[Eryu: add _require_aio to generic/095, fix more indention issues]

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-14 19:12:42 +08:00
Theodore Ts'o 2ecbf171ba generic: test which tries to exercise AIO/DIO into unwritten space
This test verifies that the an unwritten extent is properly marked as
written after writing into it.

There was a hard-to-hit bug which would occasionally trigger with ext4
for which this test was a reproducer.  This has been fixed after
moving ext4 to use iomap for Direct I/O's, although as of this
writing, there are still some occasional failures on ext4 when block
size < page size.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-14 19:06:43 +08:00
Zorro Lang 0a3e2198a8 fstests: rename RENAME_WHITEOUT test on fs no enough space
This's a regression test for linux 6b4b8e6b4ad8 ("ext4: fix bug for
rename with RENAME_WHITEOUT"). Rename a file with RENAME_WHITEOUT
flag might cause corruption when there's not enough space to
complete this renaming operation.

Signed-off-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Sun Ke <sunke32@huawei.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-09 19:53:11 +08:00
Nikolay Borisov 52a3700b26 btrfs: Add simple stress test when qgroup limits are reached
This test uncovered 2 deadlocks with qgroups when their limit was
reached.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-03-08 01:15:27 +08:00
Eric Biggers 4567345570 generic: test retrieving verity signature
Add a test which tests dumping the built-in signature of a verity file
using the new FS_IOC_READ_VERITY_METADATA ioctl.

Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-03-08 00:51:34 +08:00