Messages in this thread | | | Date | Mon, 31 Oct 2022 12:31:50 -1000 | From | Tejun Heo <> | Subject | Re: [PATCH 2/2] kernfs: dont take i_lock on revalidate |
| |
On Tue, Oct 18, 2022 at 10:32:49AM +0800, Ian Kent wrote: > In kernfs_dop_revalidate() when the passed in dentry is negative the > dentry directory is checked to see if it has changed and if so the > negative dentry is discarded so it can refreshed. During this check > the dentry inode i_lock is taken to mitigate against a possible > concurrent rename. > > But if it's racing with a rename, becuase the dentry is negative, it > can't be the source it must be the target and it must be going to do > a d_move() otherwise the rename will return an error. > > In this case the parent dentry of the target will not change, it will > be the same over the d_move(), only the source dentry parent may change > so the inode i_lock isn't needed. > > Signed-off-by: Ian Kent <raven@themaw.net>
Acked-by: Tejun Heo <tj@kernel.org>
Thanks.
-- tejun
| |