-
Al Viro authored
commit 1d2ef590 upstream. We used to get the victim pinned by dentry_unhash() prior to commit 64252c75 ("vfs: remove dget() from dentry_unhash()") and ->rmdir() and ->rename() instances relied on that; most of them don't care, but ones that used d_delete() themselves do. As the result, we are getting rmdir() oopses on NFS now. Just grab the reference before locking the victim and drop it explicitly after unlocking, same as vfs_rename_other() does. Signed-off-by:
Al Viro <viro@zeniv.linux.org.uk> Tested-by:
Simon Kirby <sim@hostway.ca> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
97abc52e