Re: [git pull] vfs fixes

From: Linus Torvalds
Date: Tue Apr 11 2017 - 02:10:30 EST


Hey Al,
mind looking at fs/namei,c line 2186:

if (likely(!nd_jump_root(nd)))
return s;
nd->root.mnt = NULL;
--> rcu_read_unlock(); <--
return ERR_PTR(-ECHILD);

because that rcu_read_unlock() looks odd.

It looks odd because the lock part is

if (flags & LOOKUP_RCU)
rcu_read_lock();

ie it's locked conditionally, and the code in between does not seem to
return every time LOOKUP_RCU is clear.

So mind giving this a look? Is it as obviously buggy as I think it is,
or is there something I'm missing?

Linus