aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/fdtable.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2024-07-31 11:49:04 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2024-10-07 13:34:41 -0400
commit8fd3395ec9051a52828fcca2328cb50a69dea8ef (patch)
treed68b2a86f57af48fbece1070a3d3a09fc16a7521 /include/linux/fdtable.h
parentLinux 6.12-rc2 (diff)
downloadwireguard-linux-8fd3395ec9051a52828fcca2328cb50a69dea8ef.tar.xz
wireguard-linux-8fd3395ec9051a52828fcca2328cb50a69dea8ef.zip
get rid of ...lookup...fdget_rcu() family
Once upon a time, predecessors of those used to do file lookup without bumping a refcount, provided that caller held rcu_read_lock() across the lookup and whatever it wanted to read from the struct file found. When struct file allocation switched to SLAB_TYPESAFE_BY_RCU, that stopped being feasible and these primitives started to bump the file refcount for lookup result, requiring the caller to call fput() afterwards. But that turned them pointless - e.g. rcu_read_lock(); file = lookup_fdget_rcu(fd); rcu_read_unlock(); is equivalent to file = fget_raw(fd); and all callers of lookup_fdget_rcu() are of that form. Similarly, task_lookup_fdget_rcu() calls can be replaced with calling fget_task(). task_lookup_next_fdget_rcu() doesn't have direct counterparts, but its callers would be happier if we replaced it with an analogue that deals with RCU internally. Reviewed-by: Christian Brauner <brauner@kernel.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/fdtable.h')
-rw-r--r--include/linux/fdtable.h4
1 files changed, 0 insertions, 4 deletions
diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h
index b1c5722f2b3c..e25e2cb65d30 100644
--- a/include/linux/fdtable.h
+++ b/include/linux/fdtable.h
@@ -92,10 +92,6 @@ static inline struct file *files_lookup_fd_locked(struct files_struct *files, un
return files_lookup_fd_raw(files, fd);
}
-struct file *lookup_fdget_rcu(unsigned int fd);
-struct file *task_lookup_fdget_rcu(struct task_struct *task, unsigned int fd);
-struct file *task_lookup_next_fdget_rcu(struct task_struct *task, unsigned int *fd);
-
static inline bool close_on_exec(unsigned int fd, const struct files_struct *files)
{
return test_bit(fd, files_fdtable(files)->close_on_exec);