]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
fs: consistently deref the files table with rcu_dereference_raw()
authorMateusz Guzik <mjguzik@gmail.com>
Thu, 13 Mar 2025 13:57:25 +0000 (14:57 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Apr 2025 08:45:10 +0000 (10:45 +0200)
commit323960a187a9622d9006484ff6635680d3a0118f
treed31dc337a55591ac7504007df94bb9beb28f9d02
parent6abd09bed43b8d83d461e0fb5b9a200a06aa8a27
fs: consistently deref the files table with rcu_dereference_raw()

[ Upstream commit f381640e1bd4f2de7ccafbfe8703d33c3718aad9 ]

... except when the table is known to be only used by one thread.

A file pointer can get installed at any moment despite the ->file_lock
being held since the following:
8a81252b774b53e6 ("fs/file.c: don't acquire files->file_lock in fd_install()")

Accesses subject to such a race can in principle suffer load tearing.

While here redo the comment in dup_fd -- it only covered a race against
files showing up, still assuming fd_install() takes the lock.

Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://lore.kernel.org/r/20250313135725.1320914-1-mjguzik@gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/file.c