diff mbox series

syscalls/fcntl15: Wait until child processes did its work

Message ID 4712735.uizZLiLCHF@linux-e202.suse.de
State Accepted
Headers show
Series syscalls/fcntl15: Wait until child processes did its work | expand

Commit Message

Fabian Vogt Dec. 13, 2021, 10:12 a.m. UTC
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(-)

Comments

Cyril Hrubis Dec. 13, 2021, 11:01 a.m. UTC | #1
Hi!
Good catch. I've adjusted the commit message a bit and pushed, thanks.
diff mbox series

Patch

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