# Re: \[PATCH 13/14\] d\_path: prepend\_path() is unlikely to return non-zero

- From: Al Viro \<viro@zeniv.linux.org.uk\>
- Date: 2021-06-28 04:15:20 
- List: linux-doc
- Page: https://ratatoskr.run/linux-doc/2021/06/208810
- Thread: https://ratatoskr.run/linux-doc/2021/05/205534/t.md

```text
On Mon, Jun 28, 2021 at 03:28:19AM +0000, Justin He wrote:

> > On which loads?  1 here is "mount/dentry pair is in somebody
> > else's namespace or outside of the subtree we are chrooted
> > into".  IOW, what's calling d_path() on your setup?
> 
> No special loads, merely collecting the results after kernel boots up.
> 
> To narrow down, I tested your branch [1] *without* my '%pD' series:
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git/log/?h=work.d_path
> 
> The result is the same after kernel boots up.

IOW, you get 1 in call from d_absolute_path().  And the same commit has
-       if (prepend_path(path, &root, &b) > 1)
+       if (unlikely(prepend_path(path, &root, &b) > 1))
there.  What's the problem?

If you want to check mispredictions, put printks at the statements
under those if (unlikely(...)) and see how often do they trigger...
```
