io_uring: make sure openat/openat2 honor rlimit nofile
authorJens Axboe <axboe@kernel.dk>
Fri, 20 Mar 2020 01:23:18 +0000 (19:23 -0600)
committerJens Axboe <axboe@kernel.dk>
Fri, 20 Mar 2020 14:47:27 +0000 (08:47 -0600)
commit4022e7af86be2dd62975dedb6b7ea551d108695e
treef8fe39d2782257cac15532721624a766f670442e
parentf1d96a8fcbbbb22d4fbc1d69eaaa678bbb0ff6e2
io_uring: make sure openat/openat2 honor rlimit nofile

Dmitry reports that a test case shows that io_uring isn't honoring a
modified rlimit nofile setting. get_unused_fd_flags() checks the task
signal->rlimi[] for the limits. As this isn't easily inheritable,
provide a __get_unused_fd_flags() that takes the value instead. Then we
can grab it when the request is prepared (from the original task), and
pass that in when we do the async part part of the open.

Reported-by: Dmitry Kadashev <dkadashev@gmail.com>
Tested-by: Dmitry Kadashev <dkadashev@gmail.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/file.c
fs/io_uring.c
include/linux/file.h