diff --git a/test/zdtm/lib/ns.c b/test/zdtm/lib/ns.c index acf4a31d8..fa6ee86a4 100644 --- a/test/zdtm/lib/ns.c +++ b/test/zdtm/lib/ns.c @@ -362,6 +362,7 @@ void ns_create(int argc, char **argv) int ret, status; struct ns_exec_args args; int flags; + char *pidf; args.argc = argc; args.argv = argv; @@ -416,6 +417,14 @@ void ns_create(int argc, char **argv) } shutdown(args.status_pipe[0], SHUT_WR); + pidf = pidfile; + pidfile = malloc(strlen(pidfile) + 13); + sprintf(pidfile, "%s%s", pidf, INPROGRESS); + if (write_pidfile(pid)) { + fprintf(stderr, "Preparations fail\n"); + exit(1); + } + status = 1; ret = read(args.status_pipe[0], &status, sizeof(status)); if (ret != sizeof(status) || status) { @@ -428,6 +437,9 @@ void ns_create(int argc, char **argv) exit(1); } + unlink(pidfile); + pidfile = pidf; + if (write_pidfile(pid)) exit(1); diff --git a/test/zdtm/lib/test.c b/test/zdtm/lib/test.c index db7118d05..a3576a573 100644 --- a/test/zdtm/lib/test.c +++ b/test/zdtm/lib/test.c @@ -41,7 +41,6 @@ int test_fork_id(int id) static int cwd = -1; -#define INPROGRESS ".inprogress" static void test_fini(void) { char path[PATH_MAX]; diff --git a/test/zdtm/lib/zdtmtst.h b/test/zdtm/lib/zdtmtst.h index 8a6f6ba89..3f9f55056 100644 --- a/test/zdtm/lib/zdtmtst.h +++ b/test/zdtm/lib/zdtmtst.h @@ -4,6 +4,8 @@ #include #include +#define INPROGRESS ".inprogress" + #ifndef PAGE_SIZE # define PAGE_SIZE (unsigned int)(sysconf(_SC_PAGESIZE)) #endif