On Thu, Feb 06, 2025 at 04:42:40PM +1100, NeilBrown wrote: > - dentry = d_alloc(base, name); > - if (unlikely(!dentry)) > + dentry = d_alloc_parallel(base, name); > + if (unlikely(IS_ERR_OR_NULL(dentry))) > return ERR_PTR(-ENOMEM); Huh? When does d_alloc_parallel() return NULL and why do you play with explicit ERR_PTR(-ENOMEM) here? > + if ((flags & LOOKUP_INTENT_FLAGS) == 0) Yecchh... Thank you (from all reviewers, I suspect) for the exciting opportunity to verify what values are possible in lookup_flags in various callers and which are guaranteed to intersect with your LOOKUP_INTENT_FLAGS mask. > +#define LOOKUP_INTENT_FLAGS (LOOKUP_OPEN | LOOKUP_CREATE | LOOKUP_EXCL | \ > + LOOKUP_RENAME_TARGET) > + ... as well as figuring out WTF do LOOKUP_OPEN and LOOKUP_EXCL fit into that.