diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-12-23 15:21:38 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-12-23 15:21:38 -0500 |
commit | 343104308a33c4f1e23c8e841ede95e97b870842 (patch) | |
tree | e7772538627a0a2176bd23cd3b2f1acbacd24592 /fs/nfs/delegation.h | |
parent | 0cb2659b818eca99235e17c04291cfa9985c14f7 (diff) | |
download | linux-3.10-343104308a33c4f1e23c8e841ede95e97b870842.tar.gz linux-3.10-343104308a33c4f1e23c8e841ede95e97b870842.tar.bz2 linux-3.10-343104308a33c4f1e23c8e841ede95e97b870842.zip |
NFSv4: Fix up another delegation related race
When we can update_open_stateid(), we need to be certain that we don't
race with a delegation return. While we could do this by grabbing the
nfs_client->cl_lock, a dedicated spin lock in the delegation structure
will scale better.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/delegation.h')
-rw-r--r-- | fs/nfs/delegation.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/delegation.h b/fs/nfs/delegation.h index f1c5e2a5d88..8299c6220e9 100644 --- a/fs/nfs/delegation.h +++ b/fs/nfs/delegation.h @@ -22,6 +22,7 @@ struct nfs_delegation { long flags; loff_t maxsize; __u64 change_attr; + spinlock_t lock; struct rcu_head rcu; }; |