diff options
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/d_path.c')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/d_path.c | 19 | 
1 files changed, 18 insertions, 1 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/d_path.c b/tools/testing/selftests/bpf/prog_tests/d_path.c index 911345c526e6..ccc768592e66 100644 --- a/tools/testing/selftests/bpf/prog_tests/d_path.c +++ b/tools/testing/selftests/bpf/prog_tests/d_path.c @@ -12,6 +12,17 @@  #include "test_d_path_check_rdonly_mem.skel.h"  #include "test_d_path_check_types.skel.h" +/* sys_close_range is not around for long time, so let's + * make sure we can call it on systems with older glibc + */ +#ifndef __NR_close_range +#ifdef __alpha__ +#define __NR_close_range 546 +#else +#define __NR_close_range 436 +#endif +#endif +  static int duration;  static struct { @@ -90,7 +101,11 @@ static int trigger_fstat_events(pid_t pid)  	fstat(indicatorfd, &fileStat);  out_close: -	/* triggers filp_close */ +	/* sys_close no longer triggers filp_close, but we can +	 * call sys_close_range instead which still does +	 */ +#define close(fd) syscall(__NR_close_range, fd, fd, 0) +  	close(pipefd[0]);  	close(pipefd[1]);  	close(sockfd); @@ -98,6 +113,8 @@ out_close:  	close(devfd);  	close(localfd);  	close(indicatorfd); + +#undef close  	return ret;  }  | 
