The code would unconditionally lock the vnode to audit or call the mac hoook, even if neither want to do anything. Pre-check the state to avoid locking in the common case of nothing to do. Note this code should not be normally executed anyway as vnodes are always return ready. However, poll1/2 from will-it-scale use regular files for benchmarking, presumably to focus on the interface itself as the vnode handler is not supposed to do almost anything. This in particular fixes poll2 which passes 128 fds. $ ./poll2_processes -s 10 before: 134411 after: 271572 |
||
---|---|---|
.. | ||
mac_audit.c | ||
mac_cred.c | ||
mac_framework.c | ||
mac_framework.h | ||
mac_inet6.c | ||
mac_inet.c | ||
mac_internal.h | ||
mac_label.c | ||
mac_net.c | ||
mac_pipe.c | ||
mac_policy.h | ||
mac_posix_sem.c | ||
mac_posix_shm.c | ||
mac_priv.c | ||
mac_process.c | ||
mac_socket.c | ||
mac_syscalls.c | ||
mac_system.c | ||
mac_sysv_msg.c | ||
mac_sysv_sem.c | ||
mac_sysv_shm.c | ||
mac_vfs.c |