This commit implements similar changes made to overlay/038 test i.e. in
addition to checking consistent values of st_ino/d_ino for "." and ".."
entries, check also the values for subdir inside each tested directory
setup.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit implements similar changes made to overlay/041 test i.e.
- Remove duplicate merged dir tests
- Remove duplicate pure upper dir inside merged dir tests
- Sort out comments and error messages
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This uses the new fio results perf helpers to run a rand write
buffered workload on the scratch device.
[eguan: add Makefile]
Signed-off-by: Josef Bacik <jbacik@fb.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This patch does the nuts and bolts of grabbing fio results and
storing them in a database in order to check against for future
runs. This works by storing the results in resuts/fio-results.db as
a sqlite database. The src/perf directory has all the supporting
python code for parsing the fio json results, storing it in the
database, and loading previous results from the database to compare
with the current results.
This also adds a PERF_CONFIGNAME option that must be set for this to
work. Since we all have various ways we run fstests it doesn't make
sense to compare different configurations with each other (unless
specifically desired). The PERF_CONFIGNAME will allow us to
separate out results for different test run configurations to make
sure we're comparing results correctly.
Currently we only check against the last perf result. In the future
I will flesh this out to compare against the average of N number of
runs to be a little more complete, and hopefully that will allow us
to also watch latencies as well.
[eguan: add required Makefile updates]
Signed-off-by: Josef Bacik <jbacik@fb.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Mount non-samefs dirs with OVERLAY_MOUNT_OPTIONS, so user can opt-in
for constant inode numbers on non-samefs setup (i.e. -o xino) when
it is implemented.
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>
In addition to checking consistent values of st_ino/d_ino for "."
and ".." entries, check also the values for subdir inside each
tested directory setup.
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>
- Remove duplicate merged dir tests
- Remove duplicate pure upper dir inside merged dir tests
- Sort out comments and error messages
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>
This commit adds a test to check hardlink breakage when the
overlayfs instance is composed of two different underlying
filesystem instances.
For example,
$ mount -t xfs /dev/loop0 /mnt/test
$ mount -t xfs /dev/loop1 /mnt/scratch
$ mkdir /mnt/scratch/upper
$ mkdir /mnt/scratch/work
$ mount -t overlay overlay -o lowerdir=/mnt/test \
-o upperdir=/mnt/scratch/upper \
-o workdir=/mnt/scratch/work /mnt/merge
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit adds a test to verify consistent st_ino feature when
the overlayfs instance is composed of two different underlying
filesystem instances.
For example,
$ mount -t xfs /dev/loop0 /mnt/test
$ mount -t xfs /dev/loop1 /mnt/scratch
$ mkdir /mnt/scratch/upper
$ mkdir /mnt/scratch/work
$ mount -t overlay overlay -o lowerdir=/mnt/test \
-o upperdir=/mnt/scratch/upper \
-o workdir=/mnt/scratch/work /mnt/merge
The goal of this test is to verify that overlayfs returns consistent
st_ino for the following scenarios,
- Copy-up of lowerdir files
- Rename files and drop dentry/inode cache
- Remount the overlayfs instance
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Constant d_ino for hardlinks is possible only when "index" config
feature/mount option is enabled.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Constant st_ino/d_ino for hardlinks requires "index" config
feature/mount option to be enabled. overlay/018 already tests
constant st_ino feature for hardlinks. A future commit will add
constant d_ino test to overlay/018 test.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
From mmap(2) manpage, "a file is mapped in multiples of the page
size. For a file that is not a multiple of the page size, the
remaining memory is zeroed when mapped", this test is to test this
behavior on truncate down.
This is inspired by an XFS bug that truncate down fails to zero page
cache beyond new EOF and causes stale data written to disk
unexpectedly and a subsequent mmap sees non-zeros post EOF.
Patch "xfs: truncate pagecache before writeback in
xfs_setattr_size()" fixed the bug on XFS.
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This changes to use '_scratch_cycle_mount' to drop all caches btrfs
could have in order to avoid an issue that drop_caches somehow
doesn't work on Nikolay's box.
Also use bash -c to run 'read' only when %pid is odd so that we can
read the faulty disk.
Reported-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Tested-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
If the UBSAN complains about bad behavior, we should capture the
dmesg so that developers can inspect it.
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>
If any of the library calls return error codes, just print out a message
and abort the test. Whoever wrote the write test did not check for
write failures, which means that if we ENOSPC without writing anything
then the reader thread will loop forever trying to read.
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>
Since we have a test to make sure that we can use Unicode points in
filesystem names, enhance it to check emoji names too.
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>
If the fuzz verb is 'random', keep generating new random values
until we get one that is distinct from the previous value.
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>
f2fs can skip isize updating in fsync(), since during mount, f2fs
tries to recovery isize according to valid block address or
preallocated flag in last fsynced dnode block.
However, fallocate() breaks our rule with setting
FALLOC_FL_KEEP_SIZE flag, since it can preallocated block cross EOF,
once the file is fsynced, in POR, we will recover isize incorrectly
based on these fallocated blocks.
This patch adds a new testcase to test fallocate, in order to verify
whether filesystem will do correct recovery on isize.
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Make sure missing device is included in the alloc list when it is
scanned on a mounted FS.
This test case needs btrfs kernel patch which is in the ML
[PATCH] btrfs: handle dynamically reappearing missing device
Without the kernel patch, the test will run, but reports as
failed, as the device scanned won't appear in the alloc_list.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
An overlayfs filesystem instance with one lowerdir filesystem and
with "xino" mount option enabled can have the layer index encoded in
the 63rd bit of the inode number. A signed 64 bit integer won't
suffice to store this inode number. Hence this commit uses strtoul()
to convert the inode number in string form to unsigned integer form.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Use the available block count to compute the number of files we think
we can create, rather than hardcoding a particular size. This fixes
the ENOSPC failures for xfs filesystems with rmap/reflink support.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Add a couple of tests to check that we don't leak inodes or dquots
if CoW recovery fails and therefore the mount fails.
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>
Padding fields are never checked and can have arbitrary values (if we
ever put them to use there'll be a feature flag) so there's no point
in fuzz-testing them.
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>