[LTP] [PATCH] syscalls/fcntl15: Wait until child processes did its work

Fabian Vogt fvogt@suse.de
Mon Dec 13 11:12:34 CET 2021


The child process might not have completed locking region two when the parent
expectes it to. Wait for it.

Fixes: 079de87f9522 ("syscalls/fcntl15: Convert to new API")
Signed-off-by: Fabian Vogt <fvogt@suse.de>
---
 testcases/kernel/syscalls/fcntl/fcntl15.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/syscalls/fcntl/fcntl15.c b/testcases/kernel/syscalls/fcntl/fcntl15.c
index 59328605ac2b..82dee4b21ee2 100644
--- a/testcases/kernel/syscalls/fcntl/fcntl15.c
+++ b/testcases/kernel/syscalls/fcntl/fcntl15.c
@@ -75,7 +75,7 @@ static void lock_region_two(int file_flag, int file_mode)
 
 	SAFE_FCNTL(fd, F_SETLK, &lock_two);
 
-	TST_CHECKPOINT_WAIT(1);
+	TST_CHECKPOINT_WAKE_AND_WAIT(1);
 
 	SAFE_CLOSE(fd);
 }
@@ -143,8 +143,11 @@ static int run_test(int file_flag, int file_mode, int dup_flag)
 
 	SAFE_FCNTL(fd[0], F_SETLK, &lock_one);
 
+	// Lock region two or wait until the child locked it
 	if (dup_flag != FORK_)
 		SAFE_FCNTL(fd[1], F_SETLK, &lock_two);
+	else
+		TST_CHECKPOINT_WAIT(1);
 
 	if (!SAFE_FORK()) {
 		do_test(file_flag, file_mode, dup_flag);
-- 
2.33.1






More information about the ltp mailing list