aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/delegation.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2010-06-16 09:52:27 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2010-06-22 13:24:02 -0400
commite047a10c1293ee0ab20258154e7f3ebf8ad502d6 (patch)
tree7dacba9544d57462b136893903398ce08b3a8435 /fs/nfs/delegation.c
parentc48f4f3541e67881c9eb7c46e052f5ece48ef530 (diff)
NFSv41: Fix nfs_async_inode_return_delegation() ugliness
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/delegation.c')
-rw-r--r--fs/nfs/delegation.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index 301634543974..f34f4ac52b81 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -471,9 +471,7 @@ void nfs_expire_unreferenced_delegations(struct nfs_client *clp)
471/* 471/*
472 * Asynchronous delegation recall! 472 * Asynchronous delegation recall!
473 */ 473 */
474int nfs_async_inode_return_delegation(struct inode *inode, const nfs4_stateid *stateid, 474int nfs_async_inode_return_delegation(struct inode *inode, const nfs4_stateid *stateid)
475 int (*validate_stateid)(struct nfs_delegation *delegation,
476 const nfs4_stateid *stateid))
477{ 475{
478 struct nfs_client *clp = NFS_SERVER(inode)->nfs_client; 476 struct nfs_client *clp = NFS_SERVER(inode)->nfs_client;
479 struct nfs_delegation *delegation; 477 struct nfs_delegation *delegation;
@@ -481,7 +479,7 @@ int nfs_async_inode_return_delegation(struct inode *inode, const nfs4_stateid *s
481 rcu_read_lock(); 479 rcu_read_lock();
482 delegation = rcu_dereference(NFS_I(inode)->delegation); 480 delegation = rcu_dereference(NFS_I(inode)->delegation);
483 481
484 if (!validate_stateid(delegation, stateid)) { 482 if (!clp->cl_mvops->validate_stateid(delegation, stateid)) {
485 rcu_read_unlock(); 483 rcu_read_unlock();
486 return -ENOENT; 484 return -ENOENT;
487 } 485 }