Message ID | 20240412052632.1787731-1-samasth.norway.ananda@oracle.com |
---|---|
State | Accepted |
Headers | show |
Series | [v2] mremap06: fallocate is not supported on nfsv4.1 or earlier | expand |
Hi all, > The function fallocate() is only supported over NFSv4.2. Thus when we > run the mremap06 ltp test over an NFSv4.1 or earlier filesystem the test > fails. > Signed-off-by: Samasth Norway Ananda <samasth.norway.ananda@oracle.com> > --- > testcases/kernel/syscalls/mremap/mremap06.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > diff --git a/testcases/kernel/syscalls/mremap/mremap06.c b/testcases/kernel/syscalls/mremap/mremap06.c > index 3bbaf441a..f3df0551c 100644 > --- a/testcases/kernel/syscalls/mremap/mremap06.c > +++ b/testcases/kernel/syscalls/mremap/mremap06.c > @@ -104,8 +104,13 @@ 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 (tst_fs_type(".") == TST_NFS_MAGIC && (errno == EOPNOTSUPP || errno == ENOSYS)) { > + tst_brk(TCONF, > + "fallocate system call is not implemented"); > + } Reviewed-by: Petr Vorel <pvorel@suse.cz> Thanks! NOTE: I'll amend the code formatting before merge: if (tst_fs_type(".") == TST_NFS_MAGIC && (errno == EOPNOTSUPP || errno == ENOSYS)) { tst_brk(TCONF, "fallocate system call is not implemented"); } And prepare following patch which adds safe_fallocate() in the library. Kind regards, Petr
Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Hi Samasth, Cyril, patch merged, thanks! Kind regards, Petr
diff --git a/testcases/kernel/syscalls/mremap/mremap06.c b/testcases/kernel/syscalls/mremap/mremap06.c index 3bbaf441a..f3df0551c 100644 --- a/testcases/kernel/syscalls/mremap/mremap06.c +++ b/testcases/kernel/syscalls/mremap/mremap06.c @@ -104,8 +104,13 @@ 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 (tst_fs_type(".") == TST_NFS_MAGIC && (errno == EOPNOTSUPP || errno == ENOSYS)) { + tst_brk(TCONF, + "fallocate system call is not implemented"); + } tst_brk(TBROK, "fallocate() failed"); + } buf = SAFE_MMAP(0, mmap_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
The function fallocate() is only supported over NFSv4.2. Thus when we run the mremap06 ltp test over an NFSv4.1 or earlier filesystem the test fails. Signed-off-by: Samasth Norway Ananda <samasth.norway.ananda@oracle.com> --- testcases/kernel/syscalls/mremap/mremap06.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)