diff options
author | 2024-08-14 16:56:42 -0400 | |
---|---|---|
committer | 2024-08-14 16:59:28 -0400 | |
commit | ee057c8c194b9283f4137b253b70e292693a39f0 (patch) | |
tree | 4ee9868bfc432e0b1230016cd316468719f0b477 /fs/file.c | |
parent | ring-buffer: Use vma_pages() helper function (diff) | |
parent | Linux 6.11-rc3 (diff) | |
download | wireguard-linux-ee057c8c194b9283f4137b253b70e292693a39f0.tar.xz wireguard-linux-ee057c8c194b9283f4137b253b70e292693a39f0.zip |
Merge tag 'v6.11-rc3' into trace/ring-buffer/core
The "reserve_mem" kernel command line parameter has been pulled into
v6.11. Merge the latest -rc3 to allow the persistent ring buffer memory to
be able to be mapped at the address specified by the "reserve_mem" command
line parameter.
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Diffstat (limited to 'fs/file.c')
-rw-r--r-- | fs/file.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/file.c b/fs/file.c index 8076aef9c210..a11e59b5d602 100644 --- a/fs/file.c +++ b/fs/file.c @@ -486,12 +486,12 @@ struct files_struct init_files = { static unsigned int find_next_fd(struct fdtable *fdt, unsigned int start) { - unsigned int maxfd = fdt->max_fds; + unsigned int maxfd = fdt->max_fds; /* always multiple of BITS_PER_LONG */ unsigned int maxbit = maxfd / BITS_PER_LONG; unsigned int bitbit = start / BITS_PER_LONG; bitbit = find_next_zero_bit(fdt->full_fds_bits, maxbit, bitbit) * BITS_PER_LONG; - if (bitbit > maxfd) + if (bitbit >= maxfd) return maxfd; if (bitbit > start) start = bitbit; @@ -1248,6 +1248,7 @@ __releases(&files->file_lock) * tables and this condition does not arise without those. */ fdt = files_fdtable(files); + fd = array_index_nospec(fd, fdt->max_fds); tofree = fdt->fd[fd]; if (!tofree && fd_is_open(fd, fdt)) goto Ebusy; |