[PATCH 5.6 116/254] io_uring: remove bogus RLIMIT_NOFILE check in file registration

From: Greg Kroah-Hartman
Date: Thu Apr 16 2020 - 10:55:29 EST


From: Jens Axboe <axboe@xxxxxxxxx>

commit c336e992cb1cb1db9ee608dfb30342ae781057ab upstream.

We already checked this limit when the file was opened, and we keep it
open in the file table. Hence when we added unit_inflight to the count
we want to register, we're doubly accounting these files. This results
in -EMFILE for file registration, if we're at half the limit.

Cc: stable@xxxxxxxxxxxxxxx # v5.1+
Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
fs/io_uring.c | 7 -------
1 file changed, 7 deletions(-)

--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -5426,13 +5426,6 @@ static int __io_sqe_files_scm(struct io_
struct sk_buff *skb;
int i, nr_files;

- if (!capable(CAP_SYS_RESOURCE) && !capable(CAP_SYS_ADMIN)) {
- unsigned long inflight = ctx->user->unix_inflight + nr;
-
- if (inflight > task_rlimit(current, RLIMIT_NOFILE))
- return -EMFILE;
- }
-
fpl = kzalloc(sizeof(*fpl), GFP_KERNEL);
if (!fpl)
return -ENOMEM;