NFS: Fix a spinlock recursion inside nfs_update_inode()
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 25 Nov 2005 22:10:06 +0000 (17:10 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 25 Nov 2005 22:11:29 +0000 (17:11 -0500)
commitb37b03b7051493c9f9a6b336c9c0f81334885b7d
tree8bb06ddeb952e4399b94bb556f715edb2dbffd34
parentff6040667ad5a21fa1090e02941ecefb94ebe32c
NFS: Fix a spinlock recursion inside nfs_update_inode()

 In cases where the server has gone insane, nfs_update_inode() may end
 up calling nfs_invalidate_inode(), which again calls stuff that takes
 the inode->i_lock that we're already holding.

 In addition, given the sort of things we have in NFS these days that
 need to be cleaned up on inode release, I'm not sure we should ever
 be calling make_bad_inode().

 Fix up spinlock recursion, and limit nfs_invalidate_inode() to clearing
 the caches, and marking the inode as being stale.

 Thanks to Steve Dickson <SteveD@redhat.com> for spotting this.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/inode.c