Re: [PATCH 01/12] kernfs: add function to find kernfs_node without increasing ref counter

From: Matthew Wilcox
Date: Mon Nov 12 2018 - 20:56:41 EST


On Mon, Nov 12, 2018 at 04:28:40AM -0800, Greg Kroah-Hartman wrote:
> On Mon, Nov 12, 2018 at 10:56:21AM +0100, Paolo Valente wrote:
> > From: Angelo Ruocco <angeloruocco90@xxxxxxxxx>
> >
> > The kernfs pseudo file system doesn't export any function to only find
> > a node by name, without also getting a reference on it.
> > But in some cases it is useful to just locate a kernfs node, while
> > using it or not depends on some other condition.
> >
> > This commit adds a function to just look for a node, without getting
> > a reference on it.
>
> Eeek, that sounds really bad. So you save off a pointer to something,
> and have no idea if that pointer now really is valid or not? It can
> instantly disappear right afterwards.
>
> This feels wrong, what is the problem of having a properly reference
> counted object passed back to you that you have to create a dangerous
> function like this?

I agree with Greg, this function is dangerous. What's wrong with using
find_get and then doing a put once you successfully take it over, or
fail to take it over?