[LTP] [PATCH] mremap06: fallocate is not supported on nfsv3

Cyril Hrubis chrubis@suse.cz
Fri Apr 5 14:01:48 CEST 2024


Hi!
> The function fallocate() is not supported on nfsv3. Thus when we run the
> mremap06 test over a nfsv3 filesystem the test fails.

Can we rather than this just skip the test on nfsv3?

If we want to skip the test on nfs in generall we can just set
.skip_filesystems = {"nfs", NULL} in the tst_test structure.

I'm not sure if we can easily detect the nfs version. The test library
does that by checking the NFS_SUPER_MAGIC againts stat, but there is a
single SUPER_MAGIC for all nfs versions.

So if we want to keep the test enabled for nfsv4 we can exit with TCONF
when the call fails only when we are on NFS with tst_fs_type() and check
that against TST_NFS_MAGIC.

> Signed-off-by: Samasth Norway Ananda <samasth.norway.ananda@oracle.com>
> ---
>  testcases/kernel/syscalls/mremap/mremap06.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/testcases/kernel/syscalls/mremap/mremap06.c b/testcases/kernel/syscalls/mremap/mremap06.c
> index 3bbaf441a..362b03e19 100644
> --- a/testcases/kernel/syscalls/mremap/mremap06.c
> +++ b/testcases/kernel/syscalls/mremap/mremap06.c
> @@ -104,8 +104,14 @@ static void setup(void)
>  	fd = SAFE_OPEN("testfile", O_CREAT | O_RDWR | O_TRUNC, 0600);
>  
>  	ret = fallocate(fd, 0, 0, mmap_size);
> -	if (ret == -1)
> +	if (ret != 0) {
> +		if (errno == EOPNOTSUPP || errno == ENOSYS) {
> +			tst_brk(TCONF,
> +				"fallocate system call is not implemented");
> +		}
>  		tst_brk(TBROK, "fallocate() failed");
> +		return;

The return shouldn't be here, tst_brk() does not return.

> +	}
>  
>  	buf = SAFE_MMAP(0, mmap_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
>  
> -- 
> 2.43.0
> 
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list