Eric Biggers [off-list ref] writes:
On Thu, Jul 27, 2023 at 01:28:39PM -0400, Gabriel Krisman Bertazi wrote:
quoted
dentry->d_name is only checked by the case-insensitive d_revalidate hook
in the LOOKUP_CREATE/LOOKUP_RENAME_TARGET case since, for these cases,
d_revalidate is always called with the parent inode read-locked, and
therefore the name cannot change from under us.
"at least read-locked"? Or do you actually mean write-locked?
No. I mean read-locked, as in holding the read-part of the inode lock.
This is the case for lookup_slow, which is safe, despite the d_add_ci
case we discussed in the previous iteration. I'll reword to say "at
least read-locked and mention it is the case in lookup_slow".
quoted
+static inline int generic_ci_d_revalidate(struct dentry *dentry,
+ const struct qstr *name,
+ unsigned int flags)
No need for inline here.
sorry, I missed the inline from your previuos review. Will fix it up
for this one.
- Eric
--
Gabriel Krisman Bertazi