···1515 int fd = get_perthread_wd();
16161717 if (fd != LINUX_AT_FDCWD)
1818- sys_close(fd);
1818+ close_internal(fd);
19192020 if (newfd == -1)
2121 newfd = LINUX_AT_FDCWD; // return to per-process wd
+6-6
src/kernel/emulation/linux/ext/file_handle.c
···117117 p = strtok_r(NULL, " ", &saveptr);
118118 if (p == NULL)
119119 {
120120- sys_close(fd_m);
120120+ close_internal(fd_m);
121121 return -ENOENT;
122122 }
123123 }
···127127 break;
128128 }
129129130130- sys_close(fd_m);
130130+ close_internal(fd_m);
131131132132 if (mount_path == NULL)
133133 return -ENOENT;
···143143144144 int ret = lkm_call(NR_handle_to_path, &args);
145145146146- sys_close(fd_m);
146146+ close_internal(fd_m);
147147148148 if (ret < 0)
149149 return errno_linux_to_bsd(ret);
···197197 p = strtok_r(NULL, " ", &saveptr);
198198 if (p == NULL)
199199 {
200200- sys_close(fd_m);
200200+ close_internal(fd_m);
201201 return -ENOENT;
202202 }
203203 }
···207207 break;
208208 }
209209210210- sys_close(fd_m);
210210+ close_internal(fd_m);
211211212212 if (mount_path == NULL)
213213 return -ENOENT;
···220220 // And now, finally, open the file by handle relative to the mount
221221 int ret = LINUX_SYSCALL(__NR_open_by_handle_at, fd_m, &ref->fh, linux_flags);
222222223223- sys_close(fd_m);
223223+ close_internal(fd_m);
224224225225 if (ret < 0)
226226 ret = errno_linux_to_bsd(ret);
+2-2
src/kernel/emulation/linux/mach/lkm.c
···1111#include "../misc/ioctl.h"
12121313extern int sys_open(const char*, int, int);
1414-extern int sys_close(int);
1414+extern int close_internal(int);
1515extern int sys_write(int, const void*, int);
1616extern int sys_kill(int, int);
1717extern int sys_getrlimit(int, struct rlimit*);
···6767 // It also means rlim_cur is not above the limit
6868 // in the following statement.
6969 int d = sys_dup2(driver_fd, lim.rlim_cur);
7070- sys_close(driver_fd);
7070+ close_internal(driver_fd);
71717272 driver_fd = d;
7373 }
···248248249249 _pthread_fork_child_postinit();
250250 // _libtrace_fork_child(); // no prep work required for the fork
251251+ kqueue_atfork();
251252}
252253253254/*