]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit91255ef7adc34666121c407cbaebd526ea1a0664
tree8bb06ddeb952e4399b94bb556f715edb2dbffd34
parent46fc0a35c33569c2c36fac860fd1afb9a4cad192
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