Auke/scoutfs#5
Open
aversecat wants to merge 2329 commits into
Open
Conversation
…tion Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
On old distros, we can't detect some btrfs structs because of
undeclared 'NULL' in btrfs_err_str function. This function has been
removed after kernel commit 68598d2ea8863 ("btrfs: remove
btrfs_err_str function from uapi/linux/btrfs.h").
Fix this bug in xfstests layer by adding stddef.h because NULL is
defined in stddef.h(it is in /usr/lib/gcc*/ directory).
Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
We don't add fallback for renameat2, so it build failed on old kernel. So use renameat instead. Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
On old glibc, reallocarray was not introduced, so this case compiles failed. We should use reallocarray if glibc supports and use realloc if glibcs doesn't support reallocarray. Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
generic/475, but we're running fsstress on a disk image inside the scratch filesystem Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
To avoid regressing this test when testing XFS v4 when mkfs is new enough to whine about creating new deprecated filesystems, filter out the deprecation warning. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
The test case generic/361 fails on multiple filesystem implementations due to two issues: 1. A file is created on a 512 MB volume by truncating it to 1 GB. For this to work, the filesystem implementation must support sparse files. However, the test case does not check for sparse file support. 2. A loop device, backed by the 1 GB file, is created, mkfs is run on it and it is mounted. However, the mount command does not specify the filesystem type. This doesn't always work properly, as the kernel may pick the wrong driver if there are multiple implementations for a particular filesystem, or not find a driver at all in some cases. To fix the behavior of the test case, this commit adds a requirement for sparse file support to the test case, and explicitly specifies the filesystem type as $FSTYP when mounting the loop device. Signed-off-by: Ari Sundholm <ari@tuxera.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Test cases with dm_target shall call _require_scratch* before _require_dm_target to ensure that valid SCRATCH_DEV is available for dm_target. However, the test cases generic/628 and generic/629 call _require_dm_target before _require_scratch*, then unexpected failure was reported when SCRATCH_DEV is not specified. Fix the order of function calls. Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
The test case btrfs/146 calls _require_dm_target which depends on SCRATCH_DEV. The test case assumes that valid devices are set in SCRATCH_DEV_POOL, and one of the devices is propagated to SCRATCH_DEV. However, when SCRATCH_DEV_POOL is not set, valid value is not propagated to SCRATCH_DEV and _require_dm_target causes unexpected test case failure. To avoid the failure, move _require_scratch and _require_scratch_dev_pool calls before _require_dm_target call to detect invalid SCRATCH_DEV_POOL beforehand. Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Fix documented commit ids for test overlay/078 following rebase of overlayfs-next branch before merge to v5.15-rc1. Document an additional kernel fix commit id for test overlay/077. Signed-off-by: Amir Goldstein <amir73il@gmail.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This is a regression test for commit 72a048c1056a ("xfs: only set
IOMAP_F_SHARED when providing a srcmap to a write").
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Basic testing that DONTCACHE affects the XFS inode cache in the manner that we expect. The only way we can do that (for XFS, anyway) is to play around with the BULKSTAT ioctl. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
The new deferred inactivation code is lazy about deallocating deleted files, which means that we need to be more proactive about syncing the filesystem after deleting things. When reporting quotas, XFS only flushes the deferred work if we query quota id 0, so we need the explicit sync to ensure the quota numbers are not affected by laziness. [Eryu: replace the global sync with xfs_io syncfs command] Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This is a regression test for:
c02f6529864a ("xfs: make xfs_rtalloc_query_range input parameters const")
9ab72f222774 ("xfs: fix off-by-one error when the last rt extent is in use")
7e1826e05ba6 ("xfs: make fsmap backend function key parameters const")
In which we synthesize an XFS with a realtime volume and a special
realtime volume to trip the bugs fixed by all three patches that
resulted in incomplete fsmap output.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Now that scsi_debug has been using the patient module removal for a while, let's generalize its use for the other use cases. This likey will fix some odd false positives due to races. Suggested-by: Eryu Guan <guan@eryu.me> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
gcc complains with:
fsstress.c:4629:4: warning: 'oldparid' may be used uninitialized in this function [-Wmaybe-uninitialized]
4629 | printf("%d/%d: rename source entry: id=%d,parent=%d\n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4630 | procid, opno, oldid, oldparid);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fsstress.c:4629:4: warning: 'oldid' may be used uninitialized in this function [-Wmaybe-uninitialized]
But the varaibles are sure to be initialized, it is just that the
heuristics are broken since another check is used later which confuses
gcc. So just initialize the variables, to shup the compile warning.
Cc: kaixuxia <kaixuxia@tencent.com>
Cc: Brian Foster <bfoster@redhat.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
It's very rare, but we can end up in a situation where there are no
snapshots to delete, in which case the $victim variable of the function
delete_workload() ends up being assigned with an empty string. When
that happens we end up running the command:
btrfs subvolume delete "$SCRATCH_MNT/snapshots/"
Which fails since the argument is not a subvolume or a snapshot.
This causes the test to fail due to an unexpected error message from
the subvolume delete command:
btrfs/179 129s ... - output mismatch (see /home/fdmanana/git/hub/xfstests/results//btrfs/179.out.bad)
--- tests/btrfs/179.out 2020-10-16 23:13:46.546152332 +0100
+++ /home/fdmanana/git/hub/xfstests/results//btrfs/179.out.bad 2021-09-24 11:15:01.404863801 +0100
@@ -1,2 +1,3 @@
QA output created by 179
+ERROR: Not a Btrfs subvolume: Invalid argument
Silence is golden
...
Fix that by making the delete_workload() loop skip the deletion attempt
when there are no snapshots.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
…atibility In commit e05491b, I tried to resolve false test failures that were a result of device mapper refusing to change access modes on a block device that supports the FSDAX access mode. Unfortunately, I did not realize that there are two ways that fsdax support can be detected via sysfs: /sys/block/XXX/queue/dax and /sys/block/XXX/dax/, so I only added a test for the latter. As of 5.15-rc1 this doesn't seem to work anymore for some reason. I don't know enough about the byzantine world of pmem device driver initialization, but fsdax mode actually does work even though the /sys/block/XXX/dax/ path went away. So clearly we have to detect it via the other sysfs path. Fixes: e05491b ("common/rc: fix detection of device-mapper/persistent memory incompatibility") Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Recently, I've been observing very high runtimes of tests that format a filesystem atop a loop device and write enough data to fill memory, such as generic/590 and generic/361. Logging into the test VMs, I noticed that the writes to the file on the upper filesystem started fast, but soon slowed down to about 500KB/s and stayed that way for nearly 20 minutes. Looking through the D-state processes on the system revealed: /proc/4350/comm = xfs_io /proc/4350/stack : [<0>] balance_dirty_pages+0x332/0xda0 [<0>] balance_dirty_pages_ratelimited+0x304/0x400 [<0>] iomap_file_buffered_write+0x1ab/0x260 [<0>] xfs_file_buffered_write+0xba/0x330 [xfs] [<0>] new_sync_write+0x119/0x1a0 [<0>] vfs_write+0x274/0x310 [<0>] __x64_sys_pwrite64+0x89/0xc0 [<0>] do_syscall_64+0x35/0x80 [<0>] entry_SYSCALL_64_after_hwframe+0x44/0xae Here's the xfs_io process performing a buffered write to the file on the upper filesystem, which at this point has dirtied enough pages to be ratelimited. /proc/28/comm = u10:0+flush-8:80 /proc/28/stack : [<0>] blk_mq_get_tag+0x11c/0x280 [<0>] __blk_mq_alloc_request+0xce/0xf0 [<0>] blk_mq_submit_bio+0x139/0x5b0 [<0>] submit_bio_noacct+0x3ba/0x430 [<0>] iomap_submit_ioend+0x4b/0x70 [<0>] xfs_vm_writepages+0x86/0x170 [xfs] [<0>] do_writepages+0xcc/0x200 [<0>] __writeback_single_inode+0x3d/0x300 [<0>] writeback_sb_inodes+0x207/0x4a0 [<0>] __writeback_inodes_wb+0x4c/0xe0 [<0>] wb_writeback+0x1da/0x2c0 [<0>] wb_workfn+0x2ad/0x4f0 [<0>] process_one_work+0x1e2/0x3d0 [<0>] worker_thread+0x53/0x3c0 [<0>] kthread+0x149/0x170 [<0>] ret_from_fork+0x1f/0x30 This is a flusher thread that has invoked writeback on the upper filesystem to try to clean memory pages. /proc/89/comm = u10:7+loop0 /proc/89/stack : [<0>] balance_dirty_pages+0x332/0xda0 [<0>] balance_dirty_pages_ratelimited+0x304/0x400 [<0>] iomap_file_buffered_write+0x1ab/0x260 [<0>] xfs_file_buffered_write+0xba/0x330 [xfs] [<0>] do_iter_readv_writev+0x14f/0x1a0 [<0>] do_iter_write+0x7b/0x1c0 [<0>] lo_write_bvec+0x62/0x1c0 [<0>] loop_process_work+0x3a4/0xba0 [<0>] process_one_work+0x1e2/0x3d0 [<0>] worker_thread+0x53/0x3c0 [<0>] kthread+0x149/0x170 [<0>] ret_from_fork+0x1f/0x30 Here's the loop device worker handling the writeback IO submitted by the flusher thread. Unfortunately, the loop device is using buffered write mode, which means that /writeback/ is dirtying pages and being throttled for that. This is stupid. Fix this by trying to enable "directio" mode on the loop device, which delivers two performance benefits: setting directio mode also enables async io mode, which will allow multiple IOs at once; and using directio nearly eliminates the chance that writeback will get throttled. On the author's system with fast storage, this reduces the runtime of g/590 from 20 minutes to 12 seconds, and g/361 from ~30s to ~3s. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This is a regression test for the two realtime allocator bug fixes: xfs: adjust rt allocation minlen when extszhint > rtextsize xfs: retry allocations when locality-based search fails Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This is a regression test for the following fixes: xfs: standardize extent size hint validation xfs: validate extsz hints against rt extent size when rtinherit is set mkfs: validate rt extent size hint when rtinherit is set These patches fix inadequate rtextsize alignment validation of extent size hints on directories with the rtinherit and extszinherit flags set. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Add a functional test to exercise using "xfs_growfs -e XXX -r" to add a realtime section to a filesystem while changing the extent size. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Exercise filesystem operations when we're taking CPUs online and offline throughout the test. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
copy_range is the group name for copy_file_range tests, so reclassify these tests. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
"clone" is the group for tests that exercise FICLONERANGE, so move these tests. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
The group name for fuzz tests is 'fuzzers'. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
The group for testing subvolume functionality is 'subvol', not 'subvolume'. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This test isn't really an overlay test; it's a regression test for a bug that someone found in xfs handling of whiteout files. Since the 'overlay' group has one member, let's move it to 'whiteout'. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Create a file to document the purpose of each test group that is currently defined in fstests, and change mkgroupfile to check that every group mentioned in the tests is also mentioned in the documentation. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
I forgot to add spdx license tags and copyright statements to some of the tools that I've contributed to fstests. Fix this to be explicit. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Make the encryption tests create and use a named keyring "xfstests" in the session keyring that the tests happen to be running under, rather than replace the session keyring using 'keyctl new_session'. Unfortunately, the latter doesn't work when the session keyring is owned by a non-root user, which (depending on the Linux distro) can happen if xfstests is run in a sudo "session" rather than in a real root session. This isn't a great solution, as the lifetime of the keyring will no longer be tied to the tests as it should be, but it should work. The alternative would be the weird hack of making the 'check' script re-execute itself using something like 'keyctl session - $0 $@'. Reported-by: Ritesh Harjani <ritesh.list@gmail.com> Signed-off-by: Eric Biggers <ebiggers@google.com>
When run on ext4 with sufficiently fast x86_64 hardware, generic/130 sometimes fails because xfs_io can report rate values as -nan: 0.000000 bytes, 0 ops; 0.0000 sec (-nan bytes/sec and -nan ops/sec) _filter_xfs_io matches the strings 'inf' or 'nan', but not '-nan'. In that case it fails to convert the actual output to a normalized form matching generic/130's golden output. Extend the regular expression used to match xfs_io's output to fix this. Signed-off-by: Eric Whitney <enwlinux@gmail.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Ceph kernel client now has a facility to check stats for certain operations. One of these operations is the 'copyfrom', the operation that is used to offload to the OSDs the copy of objects from, for example, the copy_file_range() syscall. This patch changes ceph/001 to add an extra check to verify that the copies performed by the test are _really_ remote copies and not simple read+write operations. Signed-off-by: Luís Henriques <lhenriques@suse.de> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Now that xfs_scrub can report whether or not it was built with the Unicode name checker, rewrite _check_xfs_scrub_does_unicode to take advantage of that. This supersedes the old method of trying to observe dynamic library linkages and grepping the binary, neither of which worked very well. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Add a new regression test for a stack corruption problem uncovered in the mkfs config file parsing code. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
mkfs will soon refuse to format a log smaller than 64MB, so update this test to reflect the new log sizing calculations. [Eryu: add xfs/216.cfg and use _link_out_file_name to choose .out file] Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
If you ctrl-c generic/019, it leaves fsstress processes running. Kill them in the cleanup function so that they don't have to be manually killed after interrupting the test. While touching the _cleanup() function, make it do everything that the generic _cleanup function it overrides does and fix the indenting. [Eryu: unset fs_pid and fio_pid after wait] Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: David Disseldorp <ddiss@suse.de> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Add a regression test to make sure that unprivileged userspace linking into a directory fails with EDQUOT when the directory quota limits have been exceeded. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Add a regression test to make sure that unprivileged userspace renaming within a directory fails with EDQUOT when the directory quota limits have been exceeded. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Currently idmapped_mounts tests fail for kernels without CONFIG_USER_NS because some tests are run despite missing support for idmapped mounts and they implicitely require user namespace support. Prepare idmapped_mounts to support more features a test may require to reliably run. Signed-off-by: Jan Kara <jack@suse.cz> Tested-by: Christian Brauner (Microsoft) <brauner@kernel.org> Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org> Signed-off-by: Zorro Lang <zlang@kernel.org>
Some tests in idmapped_mounts fail without CONFIG_USER_NS because they have implicit dependence on user namespaces and these tests are run despite idmapped mount support not being detected. Detect whether at least user namespaces are supported and skip tests needing them when they are not. Signed-off-by: Jan Kara <jack@suse.cz> Tested-by: Christian Brauner (Microsoft) <brauner@kernel.org> Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org> Signed-off-by: Zorro Lang <zlang@kernel.org>
The _wipe_fs function in common/dump is a historical remnant of xfstests, it's easy to cause confusion now. Now xfstests tend to call `require_scratch && scratch_mkfs && scratch_mount` in each case itself, we don't need to use a function to do that specially, so remove _wipe_fs entirely. Signed-off-by: Zorro Lang <zlang@redhat.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
This tests a longstanding bug where xfsdumps are not properly created when an inode is present on the filesytsem which has a lower number than the root inode. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Zorro Lang <zlang@redhat.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
A recent change to xfs/019 exposed a long-standing bug in mkfs where it would always set the gid of a new child created in a setgid directory to match the gid parent directory instead of what's in the protofile. Ignoring the user's directions is not the correct behavior, so update this test to reflect that. Also don't erase the $seqres.full file, because that makes forensic analysis pointlessly difficult. Cc: Catherine Hoang <catherine.hoang@oracle.com> Fixes: 7834a74 ("xfs/019: extend protofile test") Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Catherine Hoang <catherine.hoang@oracle.com> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Zorro Lang <zlang@kernel.org>
Fix incorrect usage of unset -- one passes the name of the variable, not the *value* contained within it. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Zorro Lang <zlang@kernel.org>
Currently tests in xfstests-dev can be executed against CephFS only by mounting CephFS using kernel driver. Attempting to run tests against CephFS using FUSE doesn't work because xfstests-dev would remount CephFS using kernel. This patch adds the ability for xfstest-dev code to mount CephFS using FUSE. [Zorro add missed ";;" in common/rc] Fixes: https://tracker.ceph.com/issues/55354 Signed-off-by: Rishabh Dave <ridave@redhat.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Zorro Lang <zlang@kernel.org>
This is a regression test to make sure that nonzero error returns from a filesystem's ->sync_fs implementation are actually passed back to userspace when the call stack involves syncfs(2). [zlang@ add '_supported_fs xfs' in case] Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Zorro Lang <zlang@redhat.com> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Zorro Lang <zlang@kernel.org>
fallocate changes file contents, so make sure that we drop privileges and file capabilities after each fallocate operation. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Zorro Lang <zlang@kernel.org>
Add a regression test for commit 705191b03d50 ("fs: fix acl translation").
This tests whether setting POSIX ACLs on a tmpfs mounted in a
non-initial user and mount namespace works as expected.
Note, once again the idmapped mount testsuite is grossly misnamed at
this point. It has morphed into a full-blown generic vfs feature
testsuite.
Cc: Eryu Guan <guaneryu@gmail.com>
Cc: Seth Forshee <sforshee@digitalocean.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Zorro Lang <zlang@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Reviewed-by: Zorro Lang <zlang@kernel.org>
Signed-off-by: Zorro Lang <zlang@kernel.org>
After coreutils rebasing to 9.1, chown(1) behavior changes: " chown and chroot now warn about usages like "chown root.root f", which have the nonstandard and long-obsolete "." separator that causes problems on platforms where user names contain ".". Applications should use ":" instead of ".". " https://lwn.net/Articles/891574/ With this behavior change, old format of ownership string will cause warning like this: " +chown: warning: '.' should be ':': '1000.1000' +.chown: warning: '.' should be ':': '1100.1100' +.chown: warning: '.' should be ':': '1200.1200' +.chown: warning: '.' should be ':': '1300.1300' +.chown: warning: '.' should be ':': '1400.1400' " The new format works fine with old versions of coreutils. Signed-off-by: Murphy Zhou <jencce.kernel@gmail.com> Reviewed-by: Zorro Lang <zlang@kernel.org> Signed-off-by: Zorro Lang <zlang@kernel.org>
These two tests are checking whether a non-privileged user causing a block allocation while expanding a directory block when over quota will fail with an EDQUOT error. There are three reasons why this can fail. * Aa test bug, where if the file system is using cluster allocation (for example, ext4 bigalloc) the test doesn't add enough directory entries to actually force directory grwoth. * A file system bug, where the file system allocates blocks but for some reason isn't charging the space quota correctly (which currently seems to be the case in ext4 with fscrypt). * A file system bug, where the file system is correctly charging the space quota to the unprivileged user, but isn't failing the system call with EDQUOT. By adding some additional debugging information about whether directory has grown or not (in addition to the existing repquota output) to the the $seqres.full, it makes easier for the file system developer to disambiguate between these possibilities. It's cheap to do this, and it could save developer time when trying to root cause the failure. Signed-off-by: Theodore Ts'o <tytso@mit.edu> Cc: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Zorro Lang <zlang@kernel.org>
This test was designed to validate the quota warning limit, which in theory was supposed to migrate from a soft quota to hard enforcement after a certain number of warnings. However, the xfs kernel commit which incremented the warning counter was reverted; see: xfs: revert "xfs: actually bump warning counts when we send warnings" in the kernel tree for an explanation of why. Due to that revert, which removed this functionality, remove this test. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Zorro Lang <zlang@redhat.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Zorro Lang <zlang@kernel.org>
Compression and nodatacow are mutually exclusive. Besides ioctl, there is another way to setting compression via xattrs, and shouldn't produce invalid combinations. Signed-off-by: Chung-Chiang Cheng <cccheng@synology.com> Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: Zorro Lang <zlang@kernel.org>
Due to upstream linux has removed ALLOCSP/FREESP ioctls by commit:
4d1b97f9ce7c0 ("xfs: kill the XFS_IOC_{ALLOC,FREE}SP* ioctls"), so
let's remove ALLOCSP/FREESP testing from fsstress, to avoid more
mismatch problems.
Due to g/070 specified "-f allocsp" and "-f freesp=0", so remove
these two lines too.
Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Zorro Lang <zlang@kernel.org>
Even kernel doesn't get ATTR_KILL_SGID mask and get ATTR_KILL_SUID mask, we still can strip S_ISGID mode in setattr_prepare and setattr_copy. We should check separate sgid stripping logic whether works well on different filesystems. Also fix comments error. Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Zorro Lang <zlang@kernel.org>
Got a new box running overnight fstests and noticed a couple of failures because I forgot to enable loop device support. Fix these two tests to have _require_loop so they don't fail if there's no loop device support. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Zorro Lang <zlang@kernel.org>
- Make changes needed for two-device support in scoutfs - Fix xfstests for new needed -f mkfs option - Add scoutfs per-fs mkfs options ScoutFS requires unique addresses for each quorum member slot for each file system. We add _TEST_, _SCRATCH_, and _DEV_ mkfs options for each kind of fs that tests are going to try and make. We also remove the unconditional -f so that the config can put it in MKFS_OPTIONS. Signed-off-by: Andy Grover <agrover@versity.com> Signed-off-by: Zach Brown <zab@versity.com> Signed-off-by: Auke Kok <auke.kok@versity.com>
Declarations in `for` loops are not allowed with the compiler that Centos7 uses. Signed-off-by: Auke Kok <auke.kok@versity.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a full rebase/rework patch. It rebases the tree on top of
https://github.com/kdave/xfstestsand on top of the tagv2022.05.01. There have been more releases since then, and we can decide to rebase on top of those if needed.The changes to add
scoutfsare condensed and reworked into a single patch. I've had to include one extra patch to make it work OOTB on el7, but el8 and el9 are without further issues.There are a lot of new tests and many will fail, or are skipped entirely. This needs reconciling. We will need to exclude a ton of tests. Mostly these are going to be the same tests for el7/8/9 but for some that rely on CGroups and other features, they will be different (and we might have to skip for this reason).