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

samasth.norway.ananda@oracle.com samasth.norway.ananda@oracle.com
Mon Apr 8 23:50:16 CEST 2024



On 4/5/24 5:01 AM, Cyril Hrubis wrote:
> 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.
> 

Hi Cyril,

Wanted to mention that fallocate() is only supported over NFSv4.2 in 
particular. it's not supported over NFSv3, v4.0 or v4.1.
I could even see on the fallocate ltp tests that it is handled the same 
manner.

Thanks,
Samasth.

>> 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
> 


More information about the ltp mailing list