Commit Graph

2789 Commits

Author SHA1 Message Date
Eryu Guan 3e3b49c61a common/rc: introduce _overlay_mount_dirs helper
Introduce a new _overlay_mount_dirs() helper to do the actual
overlay mount operation and factor _overlay_scratch_mount and
_overlay_mount code to use a single implemention of
_overlay_mount_dirs(). Also convert all bare mount of overlay in
tests to use it.

Suggested-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-09-08 13:54:43 +08:00
Xiao Yang 115563d150 ext4/021: use $XFS_IO_PROG instead of xfs_io
We should use $XFS_IO_PROG to add "-F" option when we need it.

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>
2016-09-05 14:29:16 +08:00
Darrick J. Wong 2db29c7d6f xfs/122: check the ag reservation counter ioctl
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>
2016-09-02 16:40:34 +08:00
Darrick J. Wong 5324dcbbb0 xfs/122: track xfs_scrub_metadata
Make sure the metadata scrub ioctl structure doesn't change size.

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>
2016-09-02 16:40:34 +08:00
Darrick J. Wong bb5bd55108 xfs: test swapext with reflink
Add a few tests to stress the new swapext code for reflink and rmap.

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>
2016-09-02 16:40:34 +08:00
Darrick J. Wong a381fcbc67 xfs/122: test btree header block sizes
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>
2016-09-02 16:40:34 +08:00
Darrick J. Wong 297985bfeb generic/159, 160: deal with EACCES -> EPERM transition
As of 4.8 we can receive EPERM (instead of EACCES) for attempts to
reflink/dedupe to an immutable file.  Fix this up so that we accept
either answer.

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>
2016-09-02 16:40:34 +08:00
Darrick J. Wong acede2049a xfs/130,235: deal with an unreplayable dirty log
Now that we have log replay items, an FS shutdown due to a corrupt
btree results in a log that can't be replayed.  The only solution
here is to zap the log when we're fixing the corrupt fs, so do that
here.

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>
2016-09-02 16:40:33 +08:00
Darrick J. Wong 5bcb0b7d8c xfs/122: decrease the log update done item sizes
Redundant fields were removed from the rmap/refcount/bmap update
done log items, so fix the size tests.

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>
2016-09-02 16:40:20 +08:00
Darrick J. Wong 5ca088bdd2 tests/xfs: don't run tests if cowextsize isn't present
Some of the tests forgot to check that xfs_io has a cowextsize
command, so fix that here.

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>
2016-09-02 16:40:08 +08:00
Wang Xiaoguang a54bed2236 generic/172: raise fs size
In original codes, if block size is 4096, fs size will be limited
to 60MB. In such small fs, btrfs is not able to write 40MB data,
because some space has been reserved internally, so the first
_pwrite_byte in this test case will fail for enospc error.

Also from this test case's test purpose, it tries to reflink a file
that uses more than half of the fs space, so here we can just define
fs size to be 256MB, the file to be reflinked to be 168MB.

Signed-off-by: Wang Xiaoguang <wangxg.fnst@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-09-01 11:26:21 +08:00
Artem Savkov 0dea6dc3ea generic: listxattr syscall with different buffer sizes
Add test that calls listxattr syscall with different buffer size
arguments checking if it fails properly.

Signed-off-by: Artem Savkov <asavkov@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-31 17:33:22 +08:00
Eric Sandeen 2c4033964d README: fix up dependency lists
2 things: Make the dependency lines cut-and-paste-able with
line continuations, and fix up the Fedora deps a bit
(remove "awk" - should be "gawk" - and add a couple other
missing dependencies)

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-31 10:42:49 +08:00
Zorro Lang 1083413cd4 xfs: rw remount with unknown ro-compat features
Although ro-compat features cannot be mounted rw, a bug allows an
ro->rw remount transition, and this will corrupt the filesystem if
it contains ro-compat features unknown to the running kernel.

This bug has been fixed on linux kernel (d0a58e8 xfs: disallow rw
remount on fs with unknown ro-compat features), this case is the
regression testcase of that bug.

Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-30 11:36:13 +08:00
Zorro Lang 643d623669 generic/095: add xfs_file_aio_read into warning whitelist
Current generic/095 warning whitelist include:
"xfs_file_dio_aio_read" and "xfs_file_read_iter"

But from the history we can see:
1) xfs_file_dio_aio_read() was splited from xfs_file_read_iter() by
below commit:

  bbc5a74 xfs: split xfs_file_read_iter into buffered and direct I/O helpers

2) xfs_file_read_iter() came from xfs_file_aio_read() as below
commit:

  b4f5d2c xfs: switch to ->read_iter()

Some Linux distro (e.g: RHEL-7) still use the old kernel with old
function xfs_file_aio_read().

Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-28 15:36:24 +08:00
Theodore Ts'o 21eb9d303c fstests: add punch, collapse, insert, zero test groups
Define test groups for those tests which have _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.

This obviates an out-of-tree xfstests patch I maintain which used an
XFS_IO_AVOID environment variable to suppress running tests that use
punch, collapse, insert, etc.  This was rejected because of the
claim that it could be done using groups.  So this commit is in
response to those upstream comments.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-26 15:45:03 +08:00
Filipe Manana 94cec74b78 generic: fsync after file rename
Test that if we rename a file, without changing its parent
directory, create a new file that has the old name of the file we
renamed, doing an fsync against the file we renamed works correctly
and after a power failure both files exists.

This is motivated by an issue found in btrfs, introduced in the
linux kernel 4.8-rc2, that caused lockdep to report a deadlock
scenario. The btrfs issue is fixed by the patch titled:

  "Btrfs: fix lockdep warning on deadlock against an inode's log mutex"

Tested against ext3/4, xfs, f2fs and reiserfs as well.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-26 15:45:00 +08:00
Andreas Gruenbacher d8fe99a265 generic: Check clearing of SGID in chmod and acl_set_file
Check if SGID is cleared upon chmod / setfacl when the owner is not
in the owning group.  As of today, the kernel fails to clear SGID in
setxattr (which is what acl_set_file is implemented on top of) in
that case; see this patch:

  https://patchwork.kernel.org/patch/9290507/

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Cc: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-26 15:42:24 +08:00
Zorro Lang d6a6cf579f xfs: EIO error handling test
Besides fail_at_unmount, all EIO error handling can stop umount
hanging on IO error too.

This case test EIO/max_retries and EIO/retry_timeout_seconds as
below:

1) fail_at_unmount=0 && \
   EIO/max_retries=1 && \
   EIO/retry_timeout_seconds=0

2) fail_at_unmount=0 && \
   EIO/max_retries=-1 && \
   EIO/retry_timeout_seconds=1

Make sure when fail_at_unmount=0, umount won't hang there.

Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-26 15:29:49 +08:00
Zorro Lang d88e01fa78 xfs/006: refactor reset error handling code to common/rc
Nearly 1/3 code is used to reset the xfs error handling attributes,
This part can be picked up, and used for other cases. So move them
to a new function _reset_xfs_sysfs_error_handling() in common/rc.

Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-26 15:29:49 +08:00
Zorro Lang 9c03808e4d xfs/033: source mkfs output again if isize less than 512
When blocksize is 512b, xfs/033 will run mkfs.xfs again to make sure
inode size is 512b. As below:

  # devzero blows away 512byte blocks, so make 512byte inodes (at least)
  _scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
  . $tmp.mkfs
  [ $isize -lt 512 ] && \
          _scratch_mkfs_xfs -isize=512 | _filter_mkfs >/dev/null 2>&1

But after "566ebd5 mkfs: default to CRC enabled filesystems",
xfsprogs enable CRC as default. If MKFS_OPTIONS is "-b size=512 -m
crc=0", the first "_scratch_mkfs_xfs" will make crc=0, but the
second will change "crc" to "1", because it'll waive the "-b
size=512 -m crc=0" options.

xfs/033 need to check xfs's sb_features, to use different .out
files. So we should import the mkfs output($tmp.mkfs file) again, if
we mkfs again.

Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-26 15:29:49 +08:00
Eric Whitney 991b809160 common/rc: improve _require_metadata_journaling() for ext4
The code in _require_metadata_journaling() currently rejects ext4
file systems that have been created without a journal.  However, an
ext4 file system with a journal should also be rejected if the
journal is not loaded and made available for use at mount time.

Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-26 15:29:49 +08:00
Eric Whitney 758f71a33a generic/135: redirect stderr from _scratch_mkfs
In generic/135, benign warning message output from _scratch_mkfs on
stderr can cause a golden output mismatch, as can occur when testing
an ext4 bigalloc file system.  It's the only generic test that does
not also redirect stderr when directing _scratch_mkfs' stdout to
/dev/null.  Since error output from _scratch_mkfs doesn't seem
important to the overall intent of the test, there should be no harm
in making its stderr handling consistent.

Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-26 15:29:49 +08:00
Xiao Yang 6e21e45539 xfs/191: skip tests on older xfsprogs
If we don't have temp file used to test on xfsprogs 3.2.2,
_require_xfs_mkfs_validation will fail because mkfs.xfs can't create
this file. We need to skip tests before xfsprogs 4.7.0, so fix it.

This feature was introduced in xfsprogs 4.2.0 by commit 20cec860e16b
("mkfs.xfs: always use underlying fs sector size when mkfs'ing a
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>
2016-08-26 15:29:49 +08:00
Omar Sandoval 2a084ec451 src/test-nextquota: fix build failure with glibc 2.24
glibc 2.24 defines Q_GETNEXTQUOTA but not `struct nextdqblk`. We
need to define it ourselves, but let's give it a hacky name that
won't cause another build error when the definition is added to
glibc.

Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2016-08-26 15:29:49 +08:00