Re: [PATCH RFC 1/3] fs: introduce helper d_path_fast()

From: Linus Torvalds
Date: Sat May 08 2021 - 18:18:05 EST


On Sat, May 8, 2021 at 2:06 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
>
> On Sat, May 08, 2021 at 01:39:45PM -0700, Linus Torvalds wrote:
>
> > +static inline int prepend_entries(struct prepend_buffer *b, const struct path *path, const struct path *root, struct mount *mnt)
>
> If anything, s/path/dentry/, since vfsmnt here will be equal to &mnt->mnt all along.

Too subtle for me.

And is it? Because mnt is from

mnt = real_mount(path->mnt);

earlier, while vfsmount is plain "path->mnt".

> > + return 2; // detached or not attached yet
> > + break;
>
> ?

Leftover. Good catch.

> > + parent = dentry->d_parent;
> > + prefetch(parent);
> > + error = prepend_name(b, &dentry->d_name);
> > + if (error)
> > + break;
>
> return error, surely?

Surely. Bad conversion to the separate function where I missed one of
the "break" statements.

> FWIW, if we go that way, I would make that

No arguments against that - I tried to keep it with the same structure
it had when it was inside prepend_path().

Which I obviously wasn't very good at (see your fixes above ;), but it
was *meant* to be a minimal patch with no structural change.

Linus