[LTP] [PATCH] syscalls/fanotify: Kill the child process before exit
Zhao Gongyi
zhaogongyi@huawei.com
Thu Nov 4 13:19:41 CET 2021
Before the main process exit abnormally, we need to kill
the child process.
Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
---
.../kernel/syscalls/fanotify/fanotify07.c | 35 ++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/testcases/kernel/syscalls/fanotify/fanotify07.c b/testcases/kernel/syscalls/fanotify/fanotify07.c
index cc56d9019..0a0b4f1e4 100644
--- a/testcases/kernel/syscalls/fanotify/fanotify07.c
+++ b/testcases/kernel/syscalls/fanotify/fanotify07.c
@@ -108,6 +108,39 @@ static int setup_instance(void)
return fd;
}
+static int setup_another_instance(void)
+{
+ int rval;
+ int fd = fanotify_init(FAN_CLASS_CONTENT, O_RDONLY);
+
+ if (fd == -1) {
+ stop_children();
+ tst_brk(TBROK | TERRNO, "fanotify_init() failed");
+ }
+
+ if (fd < -1) {
+ stop_children();
+ tst_brk(TBROK | TERRNO,
+ "invalid fanotify_init() return %d", fd);
+ }
+
+ rval = fanotify_mark(fd,
+ FAN_MARK_ADD, FAN_ACCESS_PERM, AT_FDCWD, fname);
+
+ if (rval == -1) {
+ stop_children();
+ tst_brk(TBROK | TERRNO, "fanotify_mark() failed");
+ }
+
+ if (rval < -1) {
+ stop_children();
+ tst_brk(TBROK | TERRNO,
+ "invalid fanotify_mark() return %d", rval);
+ }
+
+ return fd;
+}
+
static void loose_fanotify_events(void)
{
int not_responded = 0;
@@ -160,7 +193,7 @@ static void test_fanotify(void)
* Create and destroy another instance. This may hang if
* unanswered fanotify events block notification subsystem.
*/
- newfd = setup_instance();
+ newfd = setup_another_instance();
SAFE_CLOSE(newfd);
--
2.17.1
More information about the ltp
mailing list