]> git.baikalelectronics.ru Git - kernel.git/commitdiff
io_uring: kill extra check in fixed io_file_get()
authorPavel Begunkov <asml.silence@gmail.com>
Sat, 10 Oct 2020 17:34:07 +0000 (18:34 +0100)
committerJens Axboe <axboe@kernel.dk>
Sat, 10 Oct 2020 18:49:24 +0000 (12:49 -0600)
ctx->nr_user_files == 0 IFF ctx->file_data == NULL and there fixed files
are not used. Hence, verifying fds only against ctx->nr_user_files is
enough. Remove the other check from hot path.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 3a65bcba5a7bb89f5d3d9b50807c64778bccc427..39c37cef9ce0e9e20bfc804ee56e2b14457a6a4a 100644 (file)
@@ -5987,8 +5987,7 @@ static int io_file_get(struct io_submit_state *state, struct io_kiocb *req,
        struct file *file;
 
        if (fixed) {
-               if (unlikely(!ctx->file_data ||
-                   (unsigned) fd >= ctx->nr_user_files))
+               if (unlikely((unsigned int)fd >= ctx->nr_user_files))
                        return -EBADF;
                fd = array_index_nospec(fd, ctx->nr_user_files);
                file = io_file_from_index(ctx, fd);