]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitd16e35af2f3c2c5158505407ea4cd1994197ffb7
treef2e1b1430ed37ee173ead7bb78e0fcbdc8ab11ac
parentc564d70ff1ba2459e46737d36a53260e3b849f28
parent4ef0fea49d75979d9063a13f9d138626f811974e
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/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 39108bd316f8 ("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