On Mon, Aug 12, 2024 at 07:44:17AM GMT, Al Viro wrote: > 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. > > Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > --- Reviewed-by: Christian Brauner <brauner@xxxxxxxxxx>