If we handle openat/openat2/accept in an async manner, then we need to ensure that the max open file limit is honored. All of these end up boiling down to the check in get_unused_fd_flags(), which does rlimit(RLIMIT_NOFILE), which uses the current->signal->rlim[] limits. Instead of fiddling with the task ->signal pointer, just allow us to pass in the correct value as set from the original task at request prep time. -- Jens Axboe