- Check decode/read of file handles after rename of parent
- Check decode/read of file handles after rename of grandparent
- Check decode/read of file handles after move to new parent
- Check encode/decode/read of file handles in non-upper overlay
This test requires and enables overlayfs NFS export support and merge
dir rename support (redirect_dir).
NFS export support depends on and requires overlayfs index feature.
This test covers only encode/decode of file handles for overlayfs
configuration of all layers on the same base fs.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This is a variant of overlay file handles test for an overlayfs that
is composed of multiple lower layers not on the same underlying fs.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
- Check encode/write/decode/read content of lower/upper file handles
- Check encode/decode/write/read content of lower/upper file handles
- Check decode/read of unlinked lower/upper files and directories
- Check decode/read of lower file handles after copy up, link and unlink
This test requires and enables overlayfs NFS export support. NFS
export support depends on and requires overlayfs index feature.
This test covers only encode/decode of file handles for overlayfs
configuration of all layers on the same base fs.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Some overlayfs features must be checked together, because they cannot
be enabled without a dependent feature (e.g. nfs_export and index).
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Multiple redirects to the same lower dir will falsely return the
same st_ino/st_dev for two different upper dirs and will cause
'diff' to falsely report that content of directories is the same
when it is not.
This test checks that overalyfs detects and fails lookup of a
multiply redirected dir.
The check for multiply redirected dir was implemented by kernel
commit titled "ovl: hash directory inodes for fsnotify".
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This test renames a merge directory so it needs to enable
redirect_dir feature, which is not enabled by default.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Several tests check that index dir is empty after upper entries have
been unlinked. With nfs_export=on, index will contain a whiteout
index entry in that case so, allow chardevs when checking for clean
index dir.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Mount option index=on checks on mount that upper dir is not being
reused with a different lower dir than the first lower dir it was
mounted with. This behavior is verified by test overlay/037.
In this test however, it is not desired to fail mount on mismatch of
upper/lower, so use the matching upper/lower dirs in this test.
The mismatch went unnoticed because the index=off mounts do not
verify lower dir and the index=on mounts fails on EBUSY (dir in use
by another live mount) before failing on ESTALE (upper/lower dir
mismatch).
Never the less, fix the mismatch, so a change in the kernel between
the two sanity checks (EBUSY vs. ESTALE) won't break the test.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Tests don't need to specify $OVERLAY_MOUNT_OPTIONS for overlay mount
helpers. These options have already been assigned to MOUNT_OPTIONS
by _overlay_config_override or by _mount_opts and will be added to
mount command by _common_dev_mount_options in _overlay_mount_dirs.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Glibc includes linux/param.h when we include sys/param.h, whereas
musl libc does not do that. HZ is a Linux-specific macro, therefore
include the header file that defines it explicitly.
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
u_int32_t type is defined in sys/types.h, which is often included by
glibc implicitly when some other headers are used, but other C
libraries such as musl may not necessarily do so, therefore an
explicit include is needed.
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Use a runfile presence check to control the background getfattr loop
instead of using kill -9. This helps us to avoid the problem that
the controlling bash will print a process killed message, which
wrecks the golden output.
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>
XFS headers are supposed to be included in a certain order so that
inline functions actually compile correctly. For the most part the
shell feeds us the files in an order that works, but with the
addition of the xfs_dir2_dirblock_bytes function this doesn't always
work now. Therefore, explicitly #include the headers in the
required order.
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 kmemleak is enabled, scan and report memory leaks after every
test.
Note that the kmemleak check support is EXPERIMENTAL! Due to the way
kmemleak works, the leak might be from an earlier test, or something
totally unrelated.
[eguan: add EXPERIMENTAL disclaimer in commit log 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>
Add tests to verify Ext4 online resizing feature with bigalloc
feature enabled. We test various resizing scenarios with different
cluster sizes.
Signed-off-by: Harshad Shirwadkar <harshads@google.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
open_by_handle can now store and load file handles from a file:
usage:
open_by_handle -p -o <handles_file> <test_dir> [N]
open_by_handle -p -i <handles_file> <test_dir> [N]
Add a new generic/exportfs test to use these new options to test
decoding file handles after cycle mount and after directory renames.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Without -r flag file handles are opened, but file content is not
read. Treat dir file hanldes, similarly. without -r flag, open dir
file handle, but don't verify its content.
This is going to be used by tests for which dir content is changed
between encode and decode of dir file handle.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
sys/signal.h is wrong and should not be used. Musl C library warns
about it.
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
strsignal(3) says that strsignal() should be used instead of
sys_siglist[].
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Remove unnecessary htonll() macro definition.
Macros and functions starting with two underscores are usually
internal and shouldn't be used by applications when a version
without "__" is available.
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
SIGCLD is synonymous with SIGCHLD, but the former is non-standard
and not supported by some C libraries such as musl.
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Integer types such as __uint32_t are non-standard and not supported
by some C libraries such as musl. This commit replaces them with
standard types such as uint32_t and includes stdint.h header where
necessary.
The following command was used to do the changing of types:
sed -r -i 's/__(u?int[0-9]{2}_t)/\1/g' src/*.c ltp/*.c
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
In musl C library headers ptrdiff_t is only defined in stddef.h.
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>