Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 29 Nov 2013 17:27:19 +0000 (09:27 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 29 Nov 2013 17:27:19 +0000 (09:27 -0800)
commitb01537bfbc832a09162e7189f63251a8785e2112
treef2e1b1430ed37ee173ead7bb78e0fcbdc8ab11ac
parent282c183b0207a518bb3be1b65faa5a36d1529fa0
parentd870b4a191a389c661cd40aacb06981c26b5e504
Merge branch 'for-linus' of git://git./linux/kernel/git/viro/vfs

Pull vfs dentry reference count fix from Al Viro.

This fixes a possible inode_permission NULL pointer dereference (and
other problems) that were due to the root dentry count being decremented
too much.  In commit 48a066e72d97 ("RCU'd vfsmounts") the placement of
clearing the LOOKUP_RCU bit changed, and we then returned failure of
incrementing the lockref on the parent dentry with LOOKUP_RCU cleared.

But that meant we needed to go through the same cleanup routines that
the later failures did wrt LOOKUP_ROOT and nd->root.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  fix bogus path_put() of nd->root after some unlazy_walk() failures