Skip to content
  • Linus Torvalds's avatar
    vfs: fix BUG_ON() in fs/namei.c:1461 · 3abb17e8
    Linus Torvalds authored
    When Al moved the nameidata_dentry_drop_rcu_maybe() call into the
    do_follow_link function in commit 844a3917
    
     ("nothing in
    do_follow_link() is going to see RCU"), he mistakenly left the
    
    	BUG_ON(inode != path->dentry->d_inode);
    
    behind.  Which would otherwise be ok, but that BUG_ON() really needs to
    be _after_ dropping RCU, since the dentry isn't necessarily stable
    otherwise.
    
    So complete the code movement in that commit, and move the BUG_ON() into
    do_follow_link() too.  This means that we need to pass in 'inode' as an
    argument (just for this one use), but that's a small thing.  And
    eventually we may be confident enough in our path lookup that we can
    just remove the BUG_ON() and the unnecessary inode argument.
    
    Reported-and-tested-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Acked-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    3abb17e8