summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2007-07-26 12:06:17 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2007-08-07 15:13:17 -0400
commit5e11934d13c9a3bcb0cadad6c7a7de5c32660422 (patch)
tree639e5660e9081bc16afccf0c509ff41c413b483d /include
parentb247bbf1da69ce376aa1ceb8057331214589e366 (diff)
downloadop-kernel-dev-5e11934d13c9a3bcb0cadad6c7a7de5c32660422.zip
op-kernel-dev-5e11934d13c9a3bcb0cadad6c7a7de5c32660422.tar.gz
NFS: Fix put_nfs_open_context
We need to grab the inode->i_lock atomically with the last reference put in order to remove the open context that is being freed from the nfsi->open_files list. Fix by converting the kref to a standard atomic counter and then using atomic_dec_and_lock()... Thanks to Arnd Bergmann for pointing out the problem. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/nfs_fs.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 9ba4aec..157dcb0 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -71,7 +71,7 @@ struct nfs_access_entry {
struct nfs4_state;
struct nfs_open_context {
- struct kref kref;
+ atomic_t count;
struct path path;
struct rpc_cred *cred;
struct nfs4_state *state;
OpenPOWER on IntegriCloud