Re: [PATCH v5 07/14] VFS: introduce start_removing_dentry()
Namjae Jeon <[email protected]>
| Newsgroups | org.kernel.vger.ecryptfs,dev.linux.lists.netfs,org.kernel.vger.linux-cifs,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-nfs,org.kernel.vger.linux-security-module,org.kernel.vger.linux-unionfs,org.kernel.vger.linux-xfs,org.kernel.vger.selinux |
|---|---|
| Message-ID | <CAKYAXd8noOKEPEBDKSFa4FLFsHH3oCKRM58Tq+PTmTG5yjyDdw@mail.gmail.com> |
On Thu, Nov 6, 2025 at 9:55 AM NeilBrown <[email protected]> wrote: > > From: NeilBrown <[email protected]> > > start_removing_dentry() is similar to start_removing() but instead of > providing a name for lookup, the target dentry is given. > > start_removing_dentry() checks that the dentry is still hashed and in > the parent, and if so it locks and increases the refcount so that > end_removing() can be used to finish the operation. > > This is used in cachefiles, overlayfs, smb/server, and apparmor. > > There will be other users including ecryptfs. > > As start_removing_dentry() takes an extra reference to the dentry (to be > put by end_removing()), there is no need to explicitly take an extra > reference to stop d_delete() from using dentry_unlink_inode() to negate > the dentry - as in cachefiles_delete_object(), and ksmbd_vfs_unlink(). > > cachefiles_bury_object() now gets an extra ref to the victim, which is > drops. As it includes the needed end_removing() calls, the caller > doesn't need them. > > Reviewed-by: Amir Goldstein <[email protected]> > Signed-off-by: NeilBrown <[email protected]> For ksmbd part, Reviewed-by: Namjae Jeon <[email protected]> Thanks!