Commit Graph

3200 Commits

Author SHA1 Message Date
Xiong Zhou 712bfebcc8 tests: add new group dax
Signed-off-by: Xiong Zhou <xzhou@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-30 00:53:29 +08:00
Liu Bo 43f4f6fe00 btrfs: regression test for reading compressed data
We had a bug in btrfs compression code which could end up with a
kernel panic.

This is adding a regression test for the bug and I've also sent a
kernel patch to fix the bug.

The patch is "Btrfs: fix kernel oops while reading compressed data".

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-30 00:53:29 +08:00
Darrick J. Wong c114000c97 generic/45[34]: fix the xfs_scrub probe test
We changed the name of the xfs_scrub verb from 'test' to 'probe', so
fix xfstests to follow.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-27 12:07:47 +08:00
Khazhismel Kumykov 4f768f3bb4 generic: Add nocheck shutdown stress test
Most shutdown tests only run on filesystems with metadata
journaling, so we lose coverage. Add a shutdown stress test that
doesn't check for consistency, so does not require journaling. This
is a modified version of generic/051, with some extras trimmed and
fs checking removed.

Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-25 18:25:36 +08:00
Richard Wareing ea817058b0 xfs: Add test for CVE-2017-14340
Verify kernel doesn't panic when user attempts to set realtime flags
on non-realtime FS, using kernel compiled with CONFIG_XFS_RT.
Unpatched kernels will panic during this test.  Kernels not compiled
with CONFIG_XFS_RT should pass test.

This bug was fixed via commit b31ff3cdf540 ("xfs:
XFS_IS_REALTIME_INODE() should be false if no rt device present") on
the main kernel tree.

[eguan: don't assume fixed position when grepping 't' and add some
comments about why we do this, also remove testfile after test]

Signed-off-by: Richard Wareing <rwareing@fb.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-25 00:14:00 +08:00
Amir Goldstein a21f34f87f overlay/031: fix test with inodes index enabled
When overlayfs is configured with CONFIG_OVERLAY_FS_INDEX=y,
workdir from previous overlay mount cannot be reused in a new
overlay mount that uses a different upper dir.

Fix the test to use a different workdir when mounting with a
different upper dir.

This change has no effect on older kernels and overlay
configured without CONFIG_OVERLAY_FS_INDEX.

Cc: zhangyi (F) <yi.zhang@huawei.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: zhangyi (F) <yi.zhang@huawei.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-20 11:49:40 +08:00
Amir Goldstein 5052c432b5 overlay/014: correct comment relating to workdir reuse
Clarification: EBUSY is what you get when trying to use the same
upperdir/workdir with two different *concurent* overlayfs mounts.
The EBUSY case is independent of the inodes index feature.

This is not the case in this test, but rather the case of trying to
reuse the same workdir with different upper dirs on *subsequent*
overlayfs mounts.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-20 11:49:18 +08:00
Andreas Gruenbacher e04905eba7 common/rc: Improve gfs2 support
Support gfs2 in _scratch_mkfs_sized _scratch_mkfs_blocksized.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-19 13:01:14 +08:00
Christoph Hellwig b88444413a xfs/310: relax extent count check
If we got over the bmbt length we'll always allocate two extents,
its just that so far getbmap merged them.

Also fix/update some comments.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-19 10:56:45 +08:00
Amir Goldstein de59259298 overlay/038: fix impure xattr test
On kvm-xfstest, getfattr (2.4.43) does not return failure exit code
when the requested xattr is not found.

Change the test to check the returned xattr value instead of exit
code.

Cc: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-18 16:00:11 +08:00
xiao yang 7ef45e8a38 xfs/115: add missing 115 into group file
Signed-off-by: xiao yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-18 10:45:57 +08:00
zhangyi (F) 11cf6e7a4a overlay: test chattr lower file in overlay
chattr with [iap..] attributes open file for read-only and invoke
ioctl(). If we chattr a lower file in overlay, it will get the lower
file but not trigger copy-up, so ioctl() lead to modification of
that lower file incorrectly. Add this test for this case.

Signed-off-by: zhangyi (F) <yi.zhang@huawei.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-17 22:24:28 +08:00
zhangyi (F) d83632b9aa overlay: test relatime for directories
Add test access time update issue for directories in upper layer.

Upstream commit cd91304e7190 ("ovl: fix relatime for directories")
fixed this issue.

[eguan: add atime group]

Signed-off-by: zhangyi (F) <yi.zhang@huawei.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-17 22:24:28 +08:00
Jeff Layton 39f31eb283 src/fsync-err: write to different offset on each fd
NFS currently has slightly different semantics from other fs' and
fails this test due to the fact that the same range is overwritten
via each fd.

Change it so that each fd overwrites a different region, which is
more representative of a real workload anyway.

Reported-by: Neil Brown <neilb@suse.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-17 22:24:28 +08:00
Eryu Guan 71d1ae5b8f generic: reserve correct indirect blocks for delalloc write path
Test that XFS reserves reasonable indirect blocks for delalloc and
speculative allocation, and doesn't cause any fdblocks corruption.

This was inspired by an XFS but that too large 'indlen' was returned by
xfs_bmap_worst_indlen() which can't fit in a 17 bits value
(STARTBLOCKVALBITS is defined as 17), then leaked 1 << 17 blocks in
sb_fdblocks.

This was only seen on XFS with rmapbt feature enabled, but nothing
prevents the test from being a generic test.

Reviewed-by: "Darrick J. Wong" <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-17 22:24:27 +08:00
Carlos Maiolino 642eb97b9f xfs: Test infinite loop while searching for a free inode slot
Tests the search algorithm for a free inode slot in a specific AG,
done in xfs_dialloc_ag_inobt().

When finobt is not used, and agi->freecount is not 0, XFS will scan
the AG inode tree looking for a free inode slot, but if
agi->freecount is corrupted, and there is no free slot at all, it
will end up in an infinite loop.

This test checks for the infinite loop fix.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-17 22:24:27 +08:00
Carlos Maiolino b4d6db82e2 common/xfs: Add helpers for checking CONFIG_XFS_DEBUG availability
Add the following helpers to common/xfs:

_require_xfs_debug()
_require_no_xfs_debug()

Tests that require or not a kernel built with XFS_DEBUG can now use
these two helpers to explicitly check for it.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-13 15:52:58 +08:00
Carlos Maiolino 461dad511f generic: Test filesystem lockup on full overprovisioned dm-thin
With thin devices, it's possible to have a virtual device larger
than the physical device itself, and such situation can cause
problems to filesystems, once the filesystem 'believe' to have more
space than it actually has.

This can lead the filesystem to several weird behaviors. The one
tested here is filesystem lockup.

In case of XFS, it locks up when trying to writeback AIL metadata
back to the filesystem, but, once there is no physical space
available, XFS locks up and do not gracefuly handle this case.

Other filesystems usually are remounted as read-only, so they
already have this situation covered.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-13 15:52:33 +08:00
Ross Zwisler 37d7344ab6 gitignore: ignore cscope files
Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-13 15:51:53 +08:00
Eryu Guan b309f08351 generic: renumber tests after merge
Tests were merged with high seq numbers to avoid conflicts with
other tests. Now renumber them to contiguous numbers, as all other
tests have been merged correctly. This is easier to do than
assigning the final seq numbers at commit time.

Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-09 18:15:53 +08:00
Amir Goldstein 5f9296904a generic: regression test for xfs leftover CoW extent error
The following error are reported after running this test:

*** xfs_check output ***
leftover CoW extent (0/2147483736) len 1
block 0/2147483736 out of range
blocks 0/2147483736..2147483736 claimed by block 0/6
leftover CoW extent (0/2147483738) len 2
blocks 0/2147483738..2147483739 out of range
blocks 0/2147483738..2147483739 claimed by block 0/6
leftover CoW extent (0/2147483741) len 3
blocks 0/2147483741..2147483743 out of range
blocks 0/2147483741..2147483743 claimed by block 0/6
block 0/88 type unknown not expected
block 0/90 type unknown not expected
block 0/91 type unknown not expected
block 0/93 type unknown not expected
block 0/94 type unknown not expected
block 0/95 type unknown not expected

*** xfs_repair -n output ***
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
leftover CoW extent (0/88) len 1
leftover CoW extent (0/90) len 2
leftover CoW extent (0/93) len 3
        - found root inode chunk

This should be fixed by patch titled:
xfs: evict CoW fork extents when performing finsert/fcollapse

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-09 18:15:53 +08:00
Amir Goldstein cc2d3d6f5f generic: crash consistency fsx test for cloned files
[eguan: fixed minor code style issues, remove extra newline at eof]

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-09 18:15:53 +08:00
Amir Goldstein 88ef97bf66 generic: regression test for ext4 crash consistency bug
This test is motivated by this inconsistency found in ext4 during random
crash consistency tests:

 *** fsck.ext4 output ***
 fsck from util-linux 2.27.1
 e2fsck 1.42.13 (17-May-2015)
 Pass 1: Checking inodes, blocks, and sizes
 Inode 12, end of extent exceeds allowed value
         (logical block 33, physical block 33817, len 7)
 Clear? no

 Inode 12, i_blocks is 240, should be 184.  Fix? no

This test uses device mapper flakey target to demonstrate the bug
found using device mapper log-writes target.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-09 18:15:53 +08:00
Amir Goldstein dd0b40b620 generic: crash consistency fsx test using dm-log-writes
Cherry-picked the test from commit 70d41e17164b
in Josef Bacik's fstests tree (https://github.com/josefbacik/fstests).
Quoting from Josef's commit message:

  The test just runs some ops and exits, then finds all of the good buffers
  in the directory we provided and:
  - replays up to the mark given
  - mounts the file system and compares the md5sum
  - unmounts and fsck's to check for metadata integrity

  dm-log-writes will pretend to do discard and the replay-log tool will
  replay it properly depending on the underlying device, either by writing
  0's or actually calling the discard ioctl, so I've enabled discard in the
  test for maximum fun.

[Amir:]
- Removed unneeded _test_falloc_support dynamic FSX_OPTS
- Fold repetitions into for loops
- Added place holders for using constant random seeds
- Add pre umount checkpint
- Add test to new 'replay' group
- Address review comments by Eryu Guan

[eguan: fixed minor code style issues, remove extra newline at eof]

Cc: Josef Bacik <jbacik@fb.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-09 18:15:53 +08:00
Amir Goldstein 520cddd8d0 fstests: add support for working with dm-log-writes target
Cherry-picked the relevant common bits from commit 70d41e17164b
in Josef Bacik's fstests tree (https://github.com/josefbacik/fstests).
Quoting from Josef's commit message:

  This patch adds the supporting code for using the dm-log-writes
  target.  The dmlogwrites code is similar to the dmflakey code, it just
  gives us functions to build and tear down a dm-log-writes target.  We
  add a new LOGWRITES_DEV variable to take in the device we will use as
  the log and add checks for that.

[Amir:]
- Removed unneeded _test_falloc_support
- Moved _require_log_writes to dmlogwrites
- Document _require_log_writes
- Address review comments by Eryu Guan

Cc: Josef Bacik <jbacik@fb.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-09-09 18:15:53 +08:00