/* DF-5798 race rig: self-reexecing binary. Place ON the mount being
 * force-unmounted so every exec installs p_textnch on that mount
 * (kern_exec.c:549-552 drop/copy) racing unmount_allproc_cb's unsync'd
 * cache_drop(&p->p_textnch) (vfs_syscalls.c:4777). */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv)
{
	long n = (argc > 1) ? atol(argv[1]) : 2000;
	char b[32];
	if (n > 0) {
		snprintf(b, sizeof(b), "%ld", n - 1);
		execl(argv[0], argv[0], b, NULL);
		perror("execl");
	}
	return 0;
}
