[LTP] [PATCH] syscalls/fcntl06: Remove R_GETLK/R_SETLK test case

Petr Vorel pvorel@suse.cz
Tue Apr 11 08:27:21 CEST 2023


Hi Xu,

> linux never implement R_GETLK/R_SETLK facility, so this case
> is useless.

> A twenty years old email[1] also mentioned that we should remove
> this case but leave a bad gap number.

> R_GETLK/R_SETLK facility only exists in the IRIXones.

> IRIX says this pair of arguments are for use by NFS lockd and really
> doesn't go into much detail.

Reviewed-by: Petr Vorel <pvorel@suse.cz>

> Fixes:#1029
> [1]https://sourceforge.net/p/ltp/mailman/message/7574937/
...
> --- a/testcases/kernel/syscalls/fcntl/fcntl06.c
> +++ /dev/null
...

- #define F_RGETLK 10                /* kludge code */
Kernel and glibc/musl does not define F_RGETLK (it's from here),
and I haven't find find any flag with value 10 in libc include/fcntl.h).

Commit from 2003 4cf809678 ("*** empty log message ***")
removed struct flock tl;, therefore it does not compile with
-DLINUX_FILE_REGION_LOCK.
With fixed code it shows fcntl() always return -1 and errno EINVAL.

=> looks to be safe to remove the test.

Kind regards,
Petr

> -#ifdef LINUX_FILE_REGION_LOCK
> -	if (fcntl(fd, F_RGETLK, &tl) == -1) {
> -		if (errno == EINVAL)
> -			tst_brkm(TCONF, cleanup,
> -				 "fcntl remote locking feature not implemented in "
> -				 "the kernel");
> -		else {
> -			/*
> -			 * FIXME (garrcoop): having it always pass on
> -			 * non-EINVAL is a bad test.
> -			 */
> -			tst_resm(TPASS, "fcntl on file failed");
> -		}
> -	}
...


More information about the ltp mailing list